.NET合并类库引用

时间:2012-06-09 09:35:27

标签: .net ilmerge fody-costura

我有一个包含WPF用户控件的类库。这个库有一些依赖,但我想将它部署为一个程序集。据我所知,IlMerge在WPF方面存在一些问题。我尝试过Costura,但它只适用于应用程序,而不适用于类库(因为我发现了here)。有没有办法实现我的目标?

3 个答案:

答案 0 :(得分:4)

作为Costura的贡献者之一,我现在可以确认它适用于图书馆和应用程序。

事实上,Costura的所有单元测试都在库中,所以它肯定有效。

答案 1 :(得分:1)

结帐this link。当我在某处阅读时,即使是ILMerge的作者也会告诉他,如果他知道这种方式,那么ILMerge将不存在。 就我个人而言,我已经在WinForms项目中使用它并且它工作得很好,虽然它是stated它正确处理WPF。

答案 2 :(得分:0)

我知道它已经回答了,但是要使用反射来修复程序集的加载,可以在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[] { });