有没有一个免费的程序可以合并程序集(类似于ILMerge),但是能够与WPF一起使用?

3

我尝试使用ILMerge合并WPF程序集,但一直没有成功。


可能是Merging dlls into a single .exe with wpf的重复问题。 - StayOnTarget
3个回答

3

Mike Barnett的ILMerge页面位于http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx,引用了Jeffrey Richter的这个注释:

http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

本节讨论如何将应用程序的依赖DLL嵌入到EXE文件中,通过允许您分发一个物理文件来简化部署。

实质上,您将依赖的DLL捆绑为资源并加载到需要时通过挂钩AppDomain的ResolveAssembly事件进行加载。


3
我想你合并WPF程序集时遇到的主要问题是资源的PackURI没有被改变。如果你能将资源重构为一个未合并的单独程序集或者修复程序集中的PackURI,那么你的合并后的程序集应该可以正常工作。

2
我不知道为什么ILMerge在处理WPF程序集时会出现问题,但是有另一个工具可以打包和合并程序集。请看.NETZ

我尝试使用.NETZ,但不幸的是它似乎无法与我的.NET 4 WPF应用程序一起工作。我只是用它来合并程序集(而不是压缩它们),但构建的应用程序在运行时会抛出异常。 - devios1
提醒一下,如果有人想尝试在3.5 WPF上使用.NETZ,请注意了。我在一个3.5 WPF应用程序上尝试使用.NETZ,但它报告说“无法确定EXE的子系统(默认为GUI窗口EXE),打包的应用程序将失败!” - Adam Caviness

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接