今天应领导要求,把一个程序打包生成一个可以执行的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的用户。