使用场景
通常开发的Winform程序,引用了其他类库后,在输出目录下都会产生很多DLL文件,exe执行时必须依赖这些DLL。想要Winform程序只有一个可执行exe文件,又不想打包成安装包,就可以采用该方法。
方案一
利用ILMerge将exe及dll合并成一个新的exe
ILMerge下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17630
将ILMerge.exe复制到exe所在目录,执行以下命令
ILMerge.exe /ndebug /target:winexe /targetplatform:v4 /out:d:/output.exe input.exe /log BouncyCastle.Crypto.dll /log Dapper.dll
/targetplatform 是用来指定版本号
/log 将dll打包进output.exe中,多个dll就用多个/log指定
方案二
利用压缩软件的自解压特性
1. 切换到Winform输出目录,全选并右键添加到压缩文件
2. 修改压缩文件名后缀为.exe
3. 切换到高级选项 -> 自解压选项,设置 -> 提取后运行:./程序名.exe,模式 -> 临时模式:勾选解包到临时文件夹,安静模式:选中全部隐藏
4. 确定并压缩,会生成一个exe文件,点击可执行