Winfrom 生成不需要安装的exe可执行文件 ILMerge使用
今天应领导要求,把一个程序打包生成一个可以执行的exe文件,不是安装包那种,类似于绿色文件,就是一个exe,可以直接运行。上网查了一下有一个工具可以实现ILMerge。
参照两个文档http://blog.sina.com.cn/s/blog_801939a70100vgar.html和http://www.cnblogs.com/seeyeah/archive/2011/08/24/2152628.html才实现了。
第一个文档提供的代码为
ILMerge /ndebug /target:winexe /out:F:\TestForm\TestForm.exe /log
F:\TestForm\Release\TestForm.exe /log
F:\TestForm\Release\testdll.dll
按照此方式尝试可以生成exe,但是闪退,就是打开以后,闪退,直接就关闭了。
查看DOS界面的内容,默认采用的是.net2.0,而程序是用4.0编写的,因此参照第二个文档的
/targetplatform:v4 =》 编译平台为.net4.0
这个方法
最终我写的代码为
ILMerge /ndebug /targetplatform:v4 /out:F:\TestForm\TestForm.exe /log
F:\TestForm\Debug\TestForm.exe /log
F:\TestForm\Debug\testdll.dll
文件可以是Debug的,也可以是Release的
需要注意的是,虽然输出/out:F:\TestForm\TestForm.exe已经跟着扩展名.exe了,但是如果把.dll文件紧跟后面,生成的是.dll文件,而不是.exe文件,请大家注意。
我也是偶遇到这个问题,才发现的,在此提醒用ILMerge的用户。