0

在过去的几天里,我一直在努力将程序集合并到一个可执行文件中。这样我就可以将单个可执行文件分发给我的用户。我发现ILMerge除了可以做到这一点之外ILMerge,似乎还有其他一些工具可以做到这一点。我试过BoxedAPPPacker 和SmartAssembly. NetShrink似乎工作得很好,但都是付费工具。因此,我想通过ILMerge大量浏览和搜索 Google 以及从 StackOverflow 完成任务,我找到了解决方案。

我尝试了以下一组用于合并程序集的行

c:\"Program Files"\Microsoft\ILMerge\ILMerge.exe"
/lib:"C:\Windows\Microsoft.NET\Framework\v3.5"
/lib:"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies"
/t: winexe
/target:exe
/targetplatform:v3.5,C:\Windows\Microsoft.NET\Framework\v3.5 
/out:”MergedProduct.exe”
"$(TargetDir)Product.exe"
"$(TargetDir)CButtonLib.dll"
"$(TargetDir)Common Tools.dll'
"$(TargetDir)Core.dll"
"$(TargetDir)ProgressIndicator.dll"
"$(TargetDir)TaskScheduler.dll"

我在 Build-Events > Post-Build event 命令行中使用了上面的这组行

在构建项目后,我得到了构建成功。此外,在构建应用程序时,就像我按 F5 开始调试一样运行。所以,总而言之,我确信上面的那组行是正确的,但我在任何地方都找不到输出的可执行文件(即MergedProduct.exe)。我也尝试使用ReleaseVisual Studio 9.0 的模式,但我仍然找不到输出合并的可执行文件。

有什么很明显的我想念的吗?

另外,我可以使用合并Product.exe.config文件ILMerge吗?

任何帮助或建议将不胜感激。

4

1 回答 1

1

该代码块是命令行的剪辑和过去吗?我注意到您在 /out 文件名周围有花哨的引号。另外,您是否尝试将文件夹添加到 /out 文件名(例如,$(TargetDir))?我们在构建过程中这样做以将其保存在特定的发布文件夹中。

ILMerge 将允许您合并 xml 文档,但不能合并配置文件(据我所知)。

于 2012-11-03T02:04:22.177 回答