.NET合并类库引用(.NET merge class library references)

2019-09-17 23:20发布

我有一个类库,它包含WPF用户控件。 该库有一定的依赖性,但我想将它部署为一个组件。 据我所知IlMerge有一些问题与WPF。 我试图Costura,但它仅适用于应用程序,而不是为类库(因为我发现这里 )。 有什么办法来实现我的目标?

Answer 1:

作为贡献者Costura之一,我现在可以证实,它适用于库以及应用程序。

事实上所有Costura的单元测试是在一个库中,所以它肯定的作品。



Answer 2:

看看这个链接 。 当我读的地方,ILMerge的连作者告诉,如果他知道的方式,ILMerge也就不存在了。 我个人已经用它的WinForms项目和它的工作很好,但它表示 ,它正确处理WPF。



Answer 3:

我知道它已经回答了,但修复使用反射,你可以将下列代码附着在AssemblyLoad事件组件的装载

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[] { });


文章来源: .NET merge class library references