xy2TK 软件打包的时候,有一个需求,就是最终生产1个exe程序,方便使用者携带、拷贝。因为使用了JSON扩展,必须引入Newtonsoft.Json.dll,主程序+扩展至少2个文件。Google了一下,有两种方法:

1、将DLL设置为资源在主程序初始化的时候,将资源动态载入

2、用微软的ILMerge程序打包

我们来看看微软的官方介绍:

ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output. See the accompanying documentation for details

大小之后726KB,下载ILMerge之后,安装,我是64位WIN7,默认安装位 C:\Program Files (x86)\Microsoft\ILMerge

将用VS生产的EXE和需要的扩展文件拷贝到C:\Program Files (x86)\Microsoft\ILMerge 目录下

qq截图20141105004327.png - 大小: 72.01 KB - 尺寸:  x  - 点击打开新窗口浏览全图

打开命令行,进入 C:\Program Files (x86)\Microsoft\ILMerge 目录,输入以下命令

C:\Program Files (x86)\Microsoft\ILMerge>ILMerge /ndebug /target:winexe /out:xy2TK-final.exe xy2TK.exe /log Newtonsoft.Json.dll

qq截图20141105004233.png - 大小: 34.21 KB - 尺寸:  x  - 点击打开新窗口浏览全图

运行完毕后,最终生成的文件在ILmerge目录下!