由于种种原因,我们使用ilmerge把我们所有的应用程序组件合并成一个文件,这样用户需要处理只有一个文件。 不幸的是,似乎是没有办法的.pdb文件与组件合并。 任何人都知道一个办法来解决呢?
Answer 1:
好吧,我想通了这一个了,但过了好一会儿。
这篇文章有/ NDEBUG发生一样。
从附带ILMerge(ILMerge.doc,重点煤矿)的发行说明:
2.8 debuginfo软公共BOOL debuginfo软{获得; 组; }当它被设置为真,ILMerge创建用于输出组件的.pdb文件和合并到它找到的输入组件的任何.pdb文件。 如果你不想在输出组件创建.pdb文件,无论此属性设置为false,否则指定在命令行中/ NDEBUG选项。 默认值:true命令行选项:/ NDEBUG
该解决方案是专门为不具有该标志在命令行上。 ILMerge将默认合并pdb文件。 确保所有源组件的PDB文件都在同一目录下,沿侧其相关的DLL,使ILMerge可以找到它们。 (我们使用的项目引用,并有一个ILMerge项目,该项目利用了这项要求。)
这里是我的ILMerge的csproj文件中的相关部分。
<Target Name="AfterBuild">
<CreateItem Include="@(ReferencePath)" Condition="'%(CopyLocal)'=='true'">
<Output TaskParameter="Include" ItemName="IlmergeAssemblies" />
</CreateItem>
<Exec Command=""..\..\Libraries\Ilmerge.exe" /copyattrs /allowMultiple /out:"@(MainAssembly)" "@(IntermediateAssembly)" @(IlmergeAssemblies->'"%(FullPath)"', ' ')" />
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
为了完整起见,我使用的是最新版本的ilmerge.exe:版本2.10.219.0,与2010/2/19 9:49的最后修改日期
文章来源: Is there a way to merge pdb files with ilmerge?