你用ILMerge吗?是否使用ILMerge合并多个程序集以简化dll的部署?在将程序集合并到一起后,您是否发现生产中的部署/版本控制存在问题?

如果可能的话,我正在寻找一些关于使用ILMerge来减少部署摩擦的建议.

推荐答案

我几乎所有不同的应用程序都使用ILMerge.我将它直接集成到发布构建过程中,所以我最终得到的是每个应用程序一个可执行文件,没有额外的DLL.

您不能ILMerge任何具有本机代码的C++程序集. 您也不能ILMerge任何包含用于WPF的XAML的程序集(至少我在这方面没有取得任何成功).它在运行时抱怨找不到资源.

我确实为ILMerge编写了一个包装可执行文件,其中我传递了我想要合并的项目的启动exe名称和输出exe名称,然后它反映了相关程序集,并使用适当的命令行参数调用ILMerge.现在,当我向项目中添加新程序集时,就更容易了,我不必记得更新构建脚本.

.net相关问答推荐

DotNet COM初始化问题

当 Func 委托需要接口作为参数时,它是如何工作的?

如何在 Windows 窗体上显示 ClickOnce 版本号

我应该创建一个 DateRange 对象吗?

NonSerialized 属性

重新启动(回收)应用程序池

.NET 世界是否有 Maven 替代方案或端口?

如何创建只读依赖属性?

无法将文件 *.mdf 作为数据库附加

.NET 反射的成本是多少?

为什么 System.Timers.Timer 能在 GC 中存活,而 System.Threading.Timer 不能?

如何将 XPath 与 XElement 或 LINQ 一起使用?

如何将 WebResponse.GetResponseStream 返回转换为字符串?

如何在 RabbitMQ 中设置重试次数?

资源(.resx)文件有什么好处?

我应该绑定到 ICollectionView 还是 ObservableCollection

ConcurrentDictionary TryRemove 何时返回 false

Guid.Parse() 或 new Guid() - 有什么区别?

如何比较泛型类型的值?

如果锁定的对象内部发生异常,它会保持锁定状态吗?