ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序。它既可以作为  开源使用,也可以作为NuGet包使用。

如果您在使用它时遇到任何问题,请与我们联系。(mbarnett _at_ microsoft _dot_ com)。但首先尝试阅读文档。

ILMerge接受一组输入程序集并将它们合并到一个目标程序集中。输入程序集列表中的第一个程序集是主程序集。当主程序集是可执行文件时,目标程序集将创建为具有与主程序集相同的入口点的可执行文件。此外,如果主程序集具有强名称,并且提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。

ILMerge打包为控制台应用程序。但它的所有功能也可以通过编程方式获得。

有几个选项可以控制ILMerge的行为。有关详细信息,请参阅该工具随附的文档。

注意:不再有在v1.1运行时中运行的ILMerge版本。

ILMerge在v4.0 .NET Runtime中运行,但它也能够使用/ targetplatformoption合并来自其他框架版本的程序集。请参阅文档。(但是,它只能为v2(及更高版本)程序集合并PDB文件。)

ILMerge仅适用于Windows,但生成的程序集同时适用于.Net和Mono。

如果使用ASP.NET v2.0,则它提供了一个工具(基于ILMerge)来组合在预编译期间创建的程序集。您可以从ASP.NET网站获取更多详细信息。

ILMerge获取的三种方式

1、下载ILMerge,

网址:https://www.microsoft.com/en-us/download/details.aspx?id=17630,使用dos命令合并程序集

2、可以使用开源项目

网址:https://github.com/dotnet/ILMerge

3、C# 使用NuGet获取,NuGet包使用。

Install-Package ilmerge -Version 3.0.29

下面本文先讲述ILMerge使用dos命令合并程序集

1、下载ILMerge,

网址:https://www.microsoft.com/en-us/download/details.aspx?id=17630

网址:https://download.csdn.net/download/longtenggenssupreme/11143210

2、安装ILMerge

3、点击下一步,选择安装路径

4、安装完成

5、安装以后文件目录下内容

6、下面是主程序的exe以及引用的第三方类库dll,(复制到ILMerge目录下,方便演示)

7、下面使用dos合并第三方dll到exe中。

win + r 打开dos

输入   cd..   回车,

输入  cd..   回车,

输入  e:    回车

输入 cd soft  回车

输入 cd ilmerge 回车

到此步,已经进入到了ilmerge的安装目录了

具体的输入格式:

ILMerge的完整命令行是:

ilmerge [/lib:directory]* [/log[:filename]] [/keyfile:filename [/delaysign]] [/internalize[:filename]]
[/t[arget]:(library|exe|winexe)] [/closed] [/ndebug] [/ver:version] [/copyattrs [/allowMultiple]]
[/xmldocs] [/attr:filename] ([/targetplatform:<version>[,<platformdir>]]|v1|v1.1|v2|v4)
[/useFullPublicKeyForReferences] [/zeroPeKind] [/wildcards] [/allowDup[:typename]]*
[/allowDuplicateResources] [/union] [/align:n]
/out:filename <primary assembly> [<other assemblies>...]

所有带参数的选项都可以使用:=作为分隔符使用。选项可以按任何顺序排列,但所有选项必须位于输入程序集列表之前。

)

输入合并操作:

ILMerge.exe  /log:123.log /t:winexe /ndebug /out:realestatetool.exe EvMS.Common.Devices.dll Newtonsoft.Json.Net20.dll

123.log 日志

可能的出现问题:

1. 合并interop这种由COM转换过来的DLL时,一定要注意,相关依赖的DLL必须也一起合并。
2. 如果有资源DLL, 应该注意资源文件的合并。

官方参考文档:documentation.

问题可以参考:https://www.microsoft.com/en-us/research/people/mbarnett/?from=http%3A%2F%2Fresearch.microsoft.com%2F~mbarnett%2Filmerge.aspx#!ilmerge

转载于:https://www.cnblogs.com/1175429393wljblog/p/10767317.html

C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL相关推荐

  1. 多个exe打包成一个exe安装程序,安装后可一键启动多个服务

    博客帮助我解决了很多问题,于是想把自己遇到的问题记录下来希望对他人有所帮助.有些帖子写得很是简单,一旦忽略了某个关键细节,就可能看不懂了,就要花费更多的时间才能解决问题或者另寻良方,所以我自己尽可能写 ...

  2. winform把所有dll打包成一个exe

    大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的"绿色 ...

  3. 用py2exe打包成一个exe文件

    一.简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2ex ...

  4. 2021-10-09 将多张电子发票pdf合并成一个pdf文件

    最近打印电子发票时,由于公司打印机都是A4纸,打印一张发票用一张A4,太浪费了. 想到找一个合并多张发票打印在一张A4的小工具,网上找到的要么需要授权,要么到处弹广告. 作为程序员,那就自己弄一个吧. ...

  5. 将两个HEX文件合并成一个HEX文件

    将两个HEX文件合并成一个HEX文件 文章目录 将两个HEX文件合并成一个HEX文件 系统环境 1. 生成BootLoader和app的HEX文件 2. 将两个HEX文件合并成一个HEX 3. 利用J ...

  6. python现有两个磁盘文件a和b_有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中Python实例...

    有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中Python实例 题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并( ...

  7. 用python将指定目录下的所有json文件合并成一个csv文件

    #!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd ...

  8. 使用vs2019和pyinstaller将py文件打包成一个exe文件(含图标),pyinstaller安装失败解决方案

    1.什么是pyinstaller 参见这篇文章: https://gwj1314.blog.csdn.net/article/details/79775764 PyInstaller是一款可以把py解 ...

  9. 打包SWF和HTML,将多个swf打包成一个EXE文件

    在制做一个flash时常常有文件种需导入其它swf文件的情况,这种情况使用flash player打包成EXE文件时,无法将附带的swf文件打进去,这给文件的复制带来了不便.如何将多个swf文件打成一 ...

最新文章

  1. 问题一:云服务中那么多的服务器怎么拓扑???
  2. Flask实战2问答平台-发布问答功能完成
  3. 1.在Linux下如何使用软盘、光盘以及DOS等非Linux分区
  4. 三十八、Vue项目上手 | 用户管理系统(上篇)
  5. HURST 1116:选美大赛(LIS+路径输出)
  6. hdu1686:KMP板子
  7. 前端学习(1972)vue之电商管理系统电商系统之弹出修改对话框
  8. Win10+VS2017+Ceres-Solver-1.13.0配置
  9. 如何理解 scanf(%*s,str)?
  10. CKFinder 2.0.2 破解小计
  11. 06.SpringBoot的webjars和静态资源映射
  12. 使用3dmax渲染出二维画面的方法
  13. 北京新文化运动纪念馆展出中国古代建筑经典模型
  14. PMP知识点总结-自由时差与总时差
  15. 2020年度第十届吴文俊人工智能科学技术奖获奖名单出炉!李德毅院士获最高成就奖...
  16. 解决IDEA SSM项目sql文件打开提示No data sources are configured to run this SQL and provide advanced code ass的问题
  17. 一个有意思的在线绘图(像Flash) - zas 的flash blog |闪客,RIA - 歪酷博客 Ycool Blog
  18. 两个案例带你搞定JBoss Marshalling编解码在Netty中的应用
  19. 央行上海总部推出企业信用报告网银查询渠道
  20. 程序员的三十五岁危机

热门文章

  1. python 取模是什么意思_编程语言中,取余和取模的区别到底是什么?
  2. 计算机专业考研学习,计算机专业考研133分复习经验谈
  3. java使用初始化输入参数_使用初始化参数配置java web应用程序
  4. shell开启飞行模式_手机飞行模式,太神奇了,今天总算明白了,不用真是太浪费了...
  5. RHEL 7.2 + Oracle 12cR2 + RAC
  6. codeforces734E
  7. jedis高版本的JedisPoolConfig没有maxActive和maxWait
  8. android 获取wifi的ip地址吗,Android获取有线和无线(wifi)的IP地址
  9. Python中的字符串(搜索和替换、对齐、统计、分离和连接)
  10. 手把手教你如何利用Kickstart自动安装虚拟机