背景
为了生成的代码更加简捷,复制方便,常常会把多个可执行文件合并成一个。
方案
Project=>Properties=>Build Events=>Edit Post-build..输入以下命令行
rem 据当前的exe和dll合关成一个.all.exe文件。
"$(ILMergeDir)ILMerge.exe" /out:"$(TargetDir)$(TargetName).all.exe" "$(TargetDir)$(TargetName).exe" "$(TargetDir)*.dll" /target:exe /targetplatform:v4,C:WindowsMicrosoft.NETFramework64v4.0.30319 /wildcards
rem 移出所有dll文件。
del *.dll
rem 移出所有.pdb文件(除了合并后创建的.all.pdb文件)。
ren "$(TargetDir)$(TargetName).all.pdb" "$(TargetName).all.pdb.temp"
del *.pdb
ren "$(TargetDir)$(TargetName).all.pdb.temp" "$(TargetName).all.pdb"
rem 删除初次生成未合并的exe文件。
del "$(TargetDir)$(TargetName).exe"
rem 重命名.all.pdb和.all.exe文件为初始设置对应的.pdb和.exe文件。
ren "$(TargetDir)$(TargetName).all.pdb" "$(TargetName).pdb"
ren "$(TargetDir)$(TargetName).all.exe" "$(TargetName).exe"
exit 0
参考
命令方式:http://stackoverflow.com/questions/9376/ilmerge-best-practices
GUI界面实现方式:http://ilmergegui.codeplex.com/