由于各种原因,我们使用ilmerge将所有应用程序集合放入一个文件中,因此用户只需处理一个文件.不幸的是,似乎没有办法将.pdb文件与程序集合并.有谁知道解决这个问题的方法?
Tit*_*ito 29
好吧,我想出了这个,虽然花了一段时间.
那篇文章已经/ ndebug完全倒退了.
从ILMerge附带的发行说明(ILMerge.doc,强调我的):
2.8 DebugInfo public bool DebugInfo {get; 组; 当此设置为true时,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>
Run Code Online (Sandbox Code Playgroud)
为了完整起见,我使用的是最新版本的ilmerge.exe:版本2.10.219.0,最后修改日期为2010年2月19日上午9:49
| 归档时间: |
|
| 查看次数: |
6992 次 |
| 最近记录: |