微软工具ILMerge
释义
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的更多相关文章
- 微软工具Sysinternals Suite
工具:Sysinternals Suite 一个可以看进程的工具.
- ILMerge合并多个DLL
序言 如果你的项目要提供多个dll给别人用,那么不妨让你的dll合并为一个,让别人看起来简洁,引用起来不会过于繁琐. 本篇比较少,但也算是比较实用吧. 下载微软的辅助工具ILMerge Imerge下 ...
- C# 版dll 程序集合并工具
C# 版dll 程序集合并工具 最近要开发一个控件给同事用,开发中会引用一些第三方DLL,这样交给用户很不方便,希望的效果是直接交付一个DLL文件.网上找了一些资料. 1. 使用 Cost ...
- [C#]使用ILMerge将源DLL合并到目标EXE(.NET4.6.2)
本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 本文主要是使用微软的ILMerge工具将源DLL合并到目标EXE,因此,需要下载以下工具: https://www.micro ...
- ILMerge合并多个DLL (转)
最近在研究CodeDom,用到ILMerge 序言 如果你的项目要提供多个dll给别人用,那么不妨让你的dll合并为一个,让别人看起来简洁,引用起来不会过于繁琐. 本篇比较少,但也算是比较实用吧. 下 ...
- ILMerge将源DLL合并到目标EXE
ILMerge将源DLL合并到目标EXE(.NET4.6.2) 本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 本文主要是使用微软的ILMerge工具将源DLL合并到目标EX ...
- 使用ILMerge将源DLL合并到目标EXE(.NET4.6.2)
本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 本文主要是使用微软的ILMerge工具将源DLL合并到目标EXE,因此,需要下载以下工具: https://www.micro ...
- 从Visual Studio看微软20年技术变迁
前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着.而迫切期盼的, ...
- 微服务框架之微软Service Fabric
常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) ...
随机推荐
- PHP下载APK文件
PHP下载APK文件(代码如下) /** * //这里不要随便打印文字,否则会影响输出的文件的 * (例如下载没问题,但是apk安装时候提醒解析安装包错误) * @return array */ pu ...
- swift中的如果在构造方法中使用KVC, 调用了super.init(), 报错, 基本数据类型属性找不到
swift要求, 属性必须有初始化值, 如果不对其赋值, 可以加一个?系统会默认给其包装一个可选值(直说就是nil) 如果定义一个基本类型, 建议直接赋值, 不建议使用? 下面说下标题中的问题 有时候 ...
- Mysql安装发生「Access denied for user ‘root’@’localhost’ (using password: NO)」错误
参考:http://www.aipacommander.com/entry/2014/05/26/152247 mysql_secure_installation 依赖重置密码
- C++变量类型转换
1:int转换为CString CString str; str.Format("As string: %d", int); 2:double转换为CString CString ...
- JVM监控常用命令行工具
jps jps -mlv //列出正在运行的虚拟机进程 jstat jstat -gc pid //监视java堆状况 显示列名 具体描述 S0C 年轻代中第一个survivor(幸存区)的容量 (字 ...
- linux命令(44):date命令
1.命令格式: date [参数]... [+格式] 2.命令功能: date 可以用来显示或设定系统的日期与时间. 3.命令参数: 必要参数: %H 小时(以00-23来表示). %I 小时(以01 ...
- 通过IP地址和子网掩码计算主机数
知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0.算出 ...
- 三十八 ThreadLocal
在多线程环境下,每个线程都有自己的数据.一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁. 但是局部变量也有问题,就是在函数调用的 ...
- 自建yum源(只演示nginx服务,其它都一样)
(1)概述 (2)yum server端配置 1)关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld sed -ri ...
- 解决Cocos2d-js 在使用 TiledMap时的黑线问题
在项目中,加载TiledMap时,如果当前显示分辨率与设计分辨率不符,做出的地图上会有黑线产生.屏幕移动时,也会有黑线. 解决的方式很简单.找到配置文件 CCConfig.js 一般情况是在 ra ...