教你用ILMerge来合并dll以及将dll合并进exe文件中

项目开发中经常会碰到这种情况: 程序中有些功能使用到了第三方的dll, 但又不想把第三方的dll做为单独的文件随同程序来发布,怎么办呢?在这里我向大家推荐一款非常不错的工具: ILMerge, 这个工具可以将多个dll文件合并为一个文件, 也可以把dll文件合并进exe文件,以后发布程序就不用愁啦(不过请注意,如果你合并的是第三方的dll库,可能会涉及到版权问题,合并之前请慎重考虑哦)~

以下文字摘自ILMerge的官方文档:

ILMerge 可以将多个.NET程序集合并成一个单一的程序集。不过,一些.NET程序集可能会因为某些特殊的情况(比如包含非托管代码),而不能被合并。笔者强烈建议对ILMerge的输出文件使用Preverify(包含在.NET Framework SDK工具集中)进行验证,以确保能够在.NET运行时环境中加载。
ILMerge是一个控件台应用程序,但是它所有的功能也可以用编程的方式来访问。因为Visual Studio 2005允许将一个可执行文件做为外部引用,所以你可以自已写一个客户端,将ILMerge作为一个库来调用它。
ILMerge 可以将多个输入程序集合并为一个目标程序集,输入程序集中的第一个程序集被称作主程序集。如果主程序集是一个可执行文件,那么目标输出也会是一个可执行文件,并和主程序集有相同的入口点(entry point)。而且,如果主程序集有强名称,并且提供了一个snk文件,那么目标程序集会用同样的snk文件进行重新签名,这样同样也有强名称。
请注意,何任程序或文件等(比如配置文件),如果依赖于原来的输入程序集名称,此时必须用目标程序集的名称来替代。
主程序集中的任何Win32资源也会被拷贝到目标程序集中。
ILMerge有许多选项可以来控制它的工作方式,你可以在命令行下直接输入ILMerge查看。

我这里给出几个示例:
合并DLL:ILMerge /target: library /out: output.dll input1.dll input2.dll input3.dll
合并EXE:ILMerge /target: exe /out: output.exe input1.exe input2.dll input3.dll

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值