2

我有一个包含 WPF 用户控件的类库。这个库有一些依赖项,但我想将它部署为一个程序集。据我所知,IlMerge 的 WPF 存在一些问题。我尝试了 Costura,但它仅适用于应用程序,不适用于类库(正如我在这里发现的那样)。有什么方法可以实现我的目标吗?

4

3 回答 3

4

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

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

于 2013-08-19T15:18:09.013 回答
1

看看这个链接。当我在某处读到时,即使是 ILMerge 的作者也告诉他,如果他知道那样的话,ILMerge 就不会存在。就我个人而言,我在 WinForms 项目中使用过它并且效果很好,尽管它声明它可以正确处理 WPF。

于 2012-06-22T14:45:41.490 回答
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[] { });
于 2017-06-22T17:54:41.030 回答