微软工具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(属于后起之秀 背后是微软云的驱动) ...
随机推荐
- C/C++——[01] 程序的基本框架
我们以HelloWorld这个简单程序为例,该程序在终端打印一行文本: Hello World! 代码如下: #include <stdio.h> int main(){ printf(& ...
- echo常用操作
echo -n 不换行输出 [root@C ~]# echo -n "peter" ; echo "linux" peterlinux echo -e 输出转义 ...
- Keepalived高可用配置
Keepalived简介 Keepalived基于VRRP协议在服务器之间建立了主备关系,通常称之为高可用对.VRRP中文叫虚拟路由冗余协议,目的是解决静态路由的单点故障问题.高可用对之间通过IP多播 ...
- 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- IntelliJ IDEA 启动方法
IntelliJ IDEA cd idea-IU-145.1617.8/bin && ./idea.sh
- socket编程之select(),poll(),epoll()
socket编程,通信 client端 socket() ----->connect() ------->recv() -----> close(); server端 socket ...
- Python基础系列----函数,面向对象,异常
1.前言 前 ...
- jdk之object源码理解
Java所有类都继承与Object,本文谈谈我对object源码的理解,如果有错的,请看官多多批评指正. 1.registerNatives() private static native void ...
- centos7yum安装tomcat
执行安装命令 [root@localhost ~]# yum -y install tomcat 查询tomcat是否安装成功 [root@localhost ~]# rpm -q tomcat to ...
- 【剑指offer】面试题 57. 和为 S 的数字
面试题 57. 和为 S 的两个数字 题目一:和为 S 的两个数字 题目 输入一个递增排序的数组和一个数字 S,在数组中查找两个数,是的他们的和正好是 S,如果有多对数字的和等于 S, 输出两个数的乘 ...