开发项目的过程中,难免会引用一些外部的DLL,这样在部署到应用环境时、不是那么方便。微软官方提供了一个工具:ILMerge。
一、用处:
将多个.Net的程序集合并成一个单一的程序集(DLL或者exe)
二、使用:
2.1、ILMerge虽然被打包成控制台应用程序,但是它的所有功能都是可以进行编程的。
关键API介绍:
public void SetInputAssemblies(string[] assems);
设置输入的程序集,每一项为程序集包含文件绝对路径的全名,其中参数第一个程序集为主程序集。
public string OutputFile { get; set; }
获取或设置合并后生成的文件名。
public void SetTargetPlatform(string platform, string dir);
设置.net framework目标平台,platform参数支持的:“v1”, “v1.1”, “v2”, “v4”,第二个参数为mscorlib.dll目录(可为空)
public ILMerge.Kind TargetKind { get; set; }
获取或设置目标平台类型(Windows应用程序、DOS应用程序、DLL)
public enum Kind
{
Dll = 0,
Exe = 1,
WinExe = 2,
SameAsPrimaryAssembly = 3,
}
设置为SameAsPrimaryAssembly时,表示与输入文件的主程序集相同。
注意:
①v1、v1.1、v2、v4指的是CLR(公共语言运行时),其中v2对应.net 2.0、.net 3.0和.net 3.5,而 v4则对应 .net 4.0及以上版本。
②参考文章地址(含GUI工具、源码):
http://www.szeju.com/index.php/other/0972424.html
2.2、官方原生的控制台程序
其实,命令行的操作也并不复杂,想要使用的可以参考:http://jingyan.baidu.com/article/49ad8bce6aa2295834d8fa97.html
3、环境:
ILMerge运行在CLR 2.0及以上的系统中,但是也能合并CLR v1或者CLR v1.1 的程序集。