C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL
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相关推荐
- 多个exe打包成一个exe安装程序,安装后可一键启动多个服务
博客帮助我解决了很多问题,于是想把自己遇到的问题记录下来希望对他人有所帮助.有些帖子写得很是简单,一旦忽略了某个关键细节,就可能看不懂了,就要花费更多的时间才能解决问题或者另寻良方,所以我自己尽可能写 ...
- winform把所有dll打包成一个exe
大家都知道做winform开发,是可以利用visual studio进行打包的,但是这种打包的方式需要双击安装,那么有没有什么方法,可以把winform程序打包成绿色版呢?当然,这里的"绿色 ...
- 用py2exe打包成一个exe文件
一.简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序. py2ex ...
- 2021-10-09 将多张电子发票pdf合并成一个pdf文件
最近打印电子发票时,由于公司打印机都是A4纸,打印一张发票用一张A4,太浪费了. 想到找一个合并多张发票打印在一张A4的小工具,网上找到的要么需要授权,要么到处弹广告. 作为程序员,那就自己弄一个吧. ...
- 将两个HEX文件合并成一个HEX文件
将两个HEX文件合并成一个HEX文件 文章目录 将两个HEX文件合并成一个HEX文件 系统环境 1. 生成BootLoader和app的HEX文件 2. 将两个HEX文件合并成一个HEX 3. 利用J ...
- python现有两个磁盘文件a和b_有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中Python实例...
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中Python实例 题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并( ...
- 用python将指定目录下的所有json文件合并成一个csv文件
#!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd ...
- 使用vs2019和pyinstaller将py文件打包成一个exe文件(含图标),pyinstaller安装失败解决方案
1.什么是pyinstaller 参见这篇文章: https://gwj1314.blog.csdn.net/article/details/79775764 PyInstaller是一款可以把py解 ...
- 打包SWF和HTML,将多个swf打包成一个EXE文件
在制做一个flash时常常有文件种需导入其它swf文件的情况,这种情况使用flash player打包成EXE文件时,无法将附带的swf文件打进去,这给文件的复制带来了不便.如何将多个swf文件打成一 ...
最新文章
- 问题一:云服务中那么多的服务器怎么拓扑???
- Flask实战2问答平台-发布问答功能完成
- 1.在Linux下如何使用软盘、光盘以及DOS等非Linux分区
- 三十八、Vue项目上手 | 用户管理系统(上篇)
- HURST 1116:选美大赛(LIS+路径输出)
- hdu1686:KMP板子
- 前端学习(1972)vue之电商管理系统电商系统之弹出修改对话框
- Win10+VS2017+Ceres-Solver-1.13.0配置
- 如何理解 scanf(%*s,str)?
- CKFinder 2.0.2 破解小计
- 06.SpringBoot的webjars和静态资源映射
- 使用3dmax渲染出二维画面的方法
- 北京新文化运动纪念馆展出中国古代建筑经典模型
- PMP知识点总结-自由时差与总时差
- 2020年度第十届吴文俊人工智能科学技术奖获奖名单出炉!李德毅院士获最高成就奖...
- 解决IDEA SSM项目sql文件打开提示No data sources are configured to run this SQL and provide advanced code ass的问题
- 一个有意思的在线绘图(像Flash) - zas 的flash blog |闪客,RIA - 歪酷博客 Ycool Blog
- 两个案例带你搞定JBoss Marshalling编解码在Netty中的应用
- 央行上海总部推出企业信用报告网银查询渠道
- 程序员的三十五岁危机
热门文章
- python 取模是什么意思_编程语言中,取余和取模的区别到底是什么?
- 计算机专业考研学习,计算机专业考研133分复习经验谈
- java使用初始化输入参数_使用初始化参数配置java web应用程序
- shell开启飞行模式_手机飞行模式,太神奇了,今天总算明白了,不用真是太浪费了...
- RHEL 7.2 + Oracle 12cR2 + RAC
- codeforces734E
- jedis高版本的JedisPoolConfig没有maxActive和maxWait
- android 获取wifi的ip地址吗,Android获取有线和无线(wifi)的IP地址
- Python中的字符串(搜索和替换、对齐、统计、分离和连接)
- 手把手教你如何利用Kickstart自动安装虚拟机