Frage

I have a class library which contains WPF user control. This library has some dependencies but I want to deploy it as one assembly. As I know IlMerge has some problems with WPF. I tried Costura but it works only for applications, not for class libraries (as I have found out here). Is there any way to achieve my goal?

War es hilfreich?

Lösung

As one of the contributors to Costura I can now confirm that it works for libraries as well as applications.

In fact all the unit tests for Costura are on a library, so it definitely works.

Andere Tipps

Check out this link. As I read somewhere, even the author of ILMerge tells that if he knew that way, ILMerge wouldn't exist. Personally I've used it in WinForms project and it worked great, though it's stated that it handles WPF correctly.

I know it is already answered, but to fix the loading of assemblies using reflection you can attach the following code in the AssemblyLoad event

var assembly = Assembly.LoadFile(@"<path to your dll>");
var assemblyLoaderType = assembly.GetType("Costura.AssemblyLoader", false);
var attachMethod = assemblyLoaderType?.GetMethod("Attach", BindingFlags.Static | BindingFlags.Public);
attachMethod?.Invoke(null, new object[] { });
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top