释义

ILMerge是一个可用于将多个.NET程序集合并为单个程序集的实用程序。

ILMerge接收一组输入程序集并将它们合并到一个目标程序集中。输入程序集列表中的第一个程序集是主程序集。

当主组件是可执行文件时,目标程序集将创建为与主程序集具有相同入口点的可执行程序。而且,如果主组件具有强名称,并提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。

注意:当程序集中包含非托管代码等功能时可能会导致无法合并

ILMerge作为控制台程序打包,也可以使用与编程方式访问,详细阅读微软文档,我们这里暂时之讲解ILMerge的控制台打包

准备

1.下载ILMerge,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17630

2.安装ILMerge,下一步下一步......完成,ok

3.准备合并打包用的dll和exe

操作

1.合并生成exe

     ILMerge /log /target:winexe /out:sample.exe source\TestQuartz.exe  source\Common.Logging.Core.dll

  说明:

》/log:生成日志,可以忽略,控制台会输出log

   》/target:生成输出类型,可以简写为/t

   》/targetplatform:输出文件的.net运行版本,我这里没有使用,可以忽略

   》/out:输出的文件名称,我是输出到当前ILMerge的根目录,如果需要输出到指定目录,请指定路径,例如我可以输出到 “D:\sample.exe”

》多个合并文件注意空格隔开,我这里资源放在了ILMerge目录下的source文件夹下,所以写法为 source\XXX

2.合并生成dll

    ILMerge /log /target:dll /out:sample.dll source\NPOI.dll source\NPOI.OOXML.dll

   上面已经介绍过就不多说了

备注 ----参考csdn-iloli的文章,笔者没有测试,做备注使用

1.interop这种由COM转换过来的DLL合并:相关依赖的DLL必须也一起合并,vbide.dll要复制到目录一起合并

2.如果有资源DLL, 应该将要被合并的oldclient.exe先改为别的名称,因为资源文件为XX.resources.dll,而ILMERGE不能合并资源文件,否则在导出后将找不到此资源文件

参考

https://github.com/Microsoft/ILMerge/blob/master/ilmerge-manual.md

http://blog.csdn.net/iloli/article/details/9324569

http://www.sufeinet.com/forum.php?mod=viewthread&tid=17822

微软工具ILMerge的更多相关文章

  1. 微软工具Sysinternals Suite

    工具:Sysinternals Suite 一个可以看进程的工具.

  2. ILMerge合并多个DLL

    序言 如果你的项目要提供多个dll给别人用,那么不妨让你的dll合并为一个,让别人看起来简洁,引用起来不会过于繁琐. 本篇比较少,但也算是比较实用吧. 下载微软的辅助工具ILMerge Imerge下 ...

  3. C# 版dll 程序集合并工具

    C# 版dll 程序集合并工具 最近要开发一个控件给同事用,开发中会引用一些第三方DLL,这样交给用户很不方便,希望的效果是直接交付一个DLL文件.网上找了一些资料. 1.       使用 Cost ...

  4. [C#]使用ILMerge将源DLL合并到目标EXE(.NET4.6.2)

    本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 本文主要是使用微软的ILMerge工具将源DLL合并到目标EXE,因此,需要下载以下工具: https://www.micro ...

  5. ILMerge合并多个DLL (转)

    最近在研究CodeDom,用到ILMerge 序言 如果你的项目要提供多个dll给别人用,那么不妨让你的dll合并为一个,让别人看起来简洁,引用起来不会过于繁琐. 本篇比较少,但也算是比较实用吧. 下 ...

  6. ILMerge将源DLL合并到目标EXE

    ILMerge将源DLL合并到目标EXE(.NET4.6.2) 本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 本文主要是使用微软的ILMerge工具将源DLL合并到目标EX ...

  7. 使用ILMerge将源DLL合并到目标EXE(.NET4.6.2)

    本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 本文主要是使用微软的ILMerge工具将源DLL合并到目标EXE,因此,需要下载以下工具: https://www.micro ...

  8. 从Visual Studio看微软20年技术变迁

    前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着.而迫切期盼的, ...

  9. 微服务框架之微软Service Fabric

    常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) ...

随机推荐

  1. 1003: FFF团的情侣活动--课程作业--找出N个数字中唯一出现奇数次的数

    1003: FFF团的情侣活动 Time Limit: 1 Sec  Memory Limit: 2 MB Description 圣诞节快到了,Water作为大FFF团团长,组织许多对情侣进行电影院 ...

  2. caffe Python API 之卷积层(Convolution)

    1.Convolution层: 就是卷积层,是卷积神经网络(CNN)的核心层. 层类型:Convolution lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.prototxt配 ...

  3. win10出现"win10系统即将过期,请激活"的处理办法

    当打开电脑时,出现"你的win10系统即将过期,请前往激活”的提示.上网查了解决方案,避免以后在出现这样的情况,现将解决步骤整理如下: 1.下载KMSpico激活软件,百度网盘下载链接如下: ...

  4. [How to] 真机调试

    1.简介 真机调试介绍. 在xcode7之前需要每年99刀的代价才能活着开发者权限并能够在真机上调试,现在如果单纯的想在真机上调是就不必花这个钱了. 2.步骤 完毕.

  5. inux权限管理(1)

    1.linux系统文件普通权限 2.文件所属主的设置,组的指定 3.特殊权限 4.acl权限 5.su命令及其注意事项和sudo权限 6.权限管理的注意点 0.首先,在linux下用户账户是分角色的, ...

  6. experss 做小型服务器出现跨域问题

    情况是这样的 我用express做一个小型的服务器来做我demo项目的一个接口 然后我就出现了跨域问题 然后我就 app.all('/*', function(req, res, next) { // ...

  7. 《深入浅出MyBatis技术原理与实战》——1.简介,2.入门

    1. 简介 Java程序都是通过JDBC连接数据库,但是只定义了接口规范,具体的实现交给各个数据库厂商去实现,因为每个数据库都有其特殊性.所以JDBC是一种桥接模式. 这里为什么说JDBC是一种桥接模 ...

  8. pku 2777(经典线段树染色问题)

    Count Color Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 41202   Accepted: 12458 Des ...

  9. [知识复习] C语言文件读写

    文件打开 fopen() 返回FILE* 对象,如果打开失败返回NULL,错误代码存入errno中 FILE *fopen( const char * filename, const char * m ...

  10. 使用 gulp 构建一个项目

    本章将介绍 gulp-watch-path stream-combiner2 gulp-sourcemaps gulp-autoprefixer 您还可以直接学习以下模块: 安装 Node 和 gul ...