C# 不能';找不到ILMerge的最终合并可执行文件位置

C# 不能';找不到ILMerge的最终合并可执行文件位置,c#,visual-studio,dll,ilmerge,C#,Visual Studio,Dll,Ilmerge,在过去的几天里,我一直在努力将程序集合并到一个可执行文件中。这样我就可以将单个可执行文件分发给我的用户。我发现除了ILMerge之外,似乎没有更多的工具可以做到这一点。我也尝试了BoxedAPPPacker和SmartAssembly。NetShrink似乎效果不错,但都是付费工具。因此,我想用ILMerge完成这项任务,在浏览和搜索了大量Google和StackOverflow之后,我找到了解决方案 我尝试了下面的一组行来合并程序集 c:\“程序文件”\Microsoft\ILMerge\IL

在过去的几天里,我一直在努力将程序集合并到一个可执行文件中。这样我就可以将单个可执行文件分发给我的用户。我发现除了
ILMerge
之外,似乎没有更多的工具可以做到这一点。我也尝试了
BoxedAPP
Packer和
SmartAssembly
NetShrink
似乎效果不错,但都是付费工具。因此,我想用
ILMerge
完成这项任务,在浏览和搜索了大量Google和StackOverflow之后,我找到了解决方案

我尝试了下面的一组行来合并程序集

c:\“程序文件”\Microsoft\ILMerge\ILMerge.exe
/库:“C:\Windows\Microsoft.NET\Framework\v3.5”
/库:“C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssembly”
/t:winexe
/目标:exe
/targetplatform:v3.5,C:\Windows\Microsoft.NET\Framework\v3.5
/输出:“MergedProduct.exe”
“$(TargetDir)Product.exe”
“$(TargetDir)CButtonLib.dll”
“$(TargetDir)通用工具.dll”
“$(TargetDir)Core.dll”
“$(TargetDir)ProgressIndicator.dll”
“$(TargetDir)TaskScheduler.dll”
我在里面用了上面这组线 生成事件>生成后事件命令行

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

我真的错过了什么吗

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


如果您能提供任何帮助或建议,我们将不胜感激。

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


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

不,该代码块实际上包含我在项目中使用的dll文件的名称,除了.exe。这对我有好处。我甚至尝试过使用你指定的输出文件夹。但是没有起作用。最后我们用第三方许可工具完成了任务。但是我仍然想知道如何使用ILMERGE来完成它。您可以添加日志开关
/log:
,其中
可以包含一个完全限定的路径。如果运气好的话,日志应该能说明出了什么问题。此外,您是否能够直接从命令行尝试此操作,以避免IDE可能带来的任何“复杂性”。但这似乎是个好主意。我不知道这是可以做到的。但问题是,当我在命令行界面中键入上述行集并构建项目时。项目建成了,我没有收到任何错误。那么为什么我没有得到任何输出合并程序集。?这正是困扰我的地方。希望我们可以通过查看日志文件来确定问题所在。此外,我不知道代码块有多准确,但在第一行中有一个额外的引号(围绕程序文件,然后在末尾再加一个引号)