ILMerge-Gui桌面版可以轻松的把.NET应用程序引用的dll、xml都合并到一个单文件里。ILMerge合并多个DLL,如果你的项目要提供多个dll给别人用,那么不妨让你的dll合并为一个,让别人看起来简洁,引用起来不会过于繁琐。
微软提供了.NET程序集的合并解决方案:ILMerge
这个工具是基于命令行的,使用起来有些不方便,后来找了这款GUI工具:ILMergeGui
这是一个开源项目,目前更新还算活跃,已支持最新版.NET4.6。
该目录下只能包含AAA.exe,DCGjogis.dll两个文件,剩余的AxInterop.****.dll,Interop.****.dll两个文件必须放置在指定的文件夹中。
为了解决这个问题,研究了好久,都没有什么好的办法,后来终于找到一个取巧的办法,就是使用ILMerge合并dll类库。
1、下载并安装ILMerge.exe
2、我的安装目录是:D:Program Files (x86)ILMerge,然后在cmd命令中,进入该目录
3、在该目录下运行ILMerge.exe命令,我的命令是:
ILMerge.exe /ndebug /target:library /out:DCGjogis.dll DLL/DCGjogis.dll /log DLL/AxInterop.****.dll DLL/Interop.****..dll
/target 是输出类型;/out是输出dll类名称;/log是要合并的dll类名称,由于我的其它类是放置在“DLL”目录下,因此带有路径。
注意:
1、原始DCGjogis.dll自身包含其它引用类,都需要放置在与原始DCGjogis.dll相同的目录下。
2、如果原始DCGjogis.dll自身包含其它引用类,而其它引用类是相对路径的话,那么其它引用类每次更新,合并DCGjogis.dll都需要重新合并制作。
通过合并,最终实现了AAA.exe,DCGjogis.dll同目录,即可运行。