编辑:我不小心发布了错误的问题(打开了多个标签 - 我的错)。这个解决方案是针对相反的问题:如何将多个程序集合并到一个 .exe中。
我今天研究了同样的问题,发现了来自 MS Research 的ILMerge 。
我有一个简单的 WinForms 应用程序,只是想快速查看一些内容。这是我在主项目 bin\Debug 目录中运行的内容:
"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe"
/targetplatform:v4,"%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5"
/target:winexe /wildcards /out:TheNewMerged.exe TheOld.exe *.dll
copy TheOld.exe.config TheNewMerged.exe.config
“/targetplatform”开关用于解决 ILMerge 引发“不允许的未解析程序集引用:System.Core”异常的问题。
我的项目是用 v4.5 编译的 - 为您的项目调整它。
其他人建议通过创建 ILMerge.exe.config 文件来解决此问题。它肯定会使命令行更短:-)