ILMerge的使用
demo地址
https://gitee.com/chenheze90/l09_lilmerge
背景
ILMerge是一个微软提供的工具。主要用途是将dll或者exe合并在一起。打包成一个程序集可以避免发布或者部署程序的时候触发依赖而导致的问题。
创建项目
我们以一个wpfapp为例
再创建一个类库,用于合并
类库实现一个加法功能
主界面调用类库的加法
首先要添加引用
完成之后执行代码,结果如图
查看debug下的文件,主程序exe和类库dll都在
NuGet添加ILMerge引用
右键点击项目,选择管理Nuget程序包,查找并下载ILMerge
将项目改为release,这样不生成pdb文件
点击下面的“高级”按钮,将调试信息改为无
编辑主项目的项目文件
在最后加上下面这两句
<Target Name="ILMerge">
<Exec Command="$(ILMergeConsolePath) bin\Release\WpfApp1.exe /out:bin\Release\WpfApp1.exe bin\Release\Bll.dll" />
</Target >
<Target Name="_ProjectRemoveDependencyFiles" AfterTargets="AfterBuild" DependsOnTargets="ILMerge">
<ItemGroup>
<_ProjectDependencyFile Include="bin\Release\Bll.dll" />
</ItemGroup>
<Delete Files="@(_ProjectDependencyFile)" />
</Target>
1./out:之后的,就是要合并的程序,第一个是合并的dll/exe,后面是被合并的dll。
2.第二个Target是为了保证生成的时候去执行第一个ILMerge的Target指令。
修改如下
先删除release下的所有文件,点击生成
如此,合并dll的工作就完成了。我们点击运行试试看