无法找到ILMerge的最终合并可执行文件位置

时间:2012-10-11 06:46:05

标签: c# visual-studio dll ilmerge

过去几天,我一直在努力在单个可执行文件中合并程序集。这样我就可以将单个可执行文件分发给我的用户。除了ILMerge之外,我发现ILMerge这样做了,似乎还有更多的工具可以做到这一点。我尝试了BoxedAPP Packer和SmartAssemblyNetShrink似乎运作良好,但都是付费工具。所以,我想用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>构建后事件命令行

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

有什么东西真的很明显我错过了吗?

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

任何帮助或建议都会非常感激。

1 个答案:

答案 0 :(得分:1)

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

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