当前位置:首页 > C#学习 > C#练习 > 正文内容

C# 使用ILMerge将dll文件和exe文件合并为单独exe文件

小道7年前 (2019-01-10)C#练习7047

今天在将 简单播放器 生成时发现,生成包内包含两个dll文件,如果要打开 简单播放器.exe 必须要携带 AxInterop.WMPLib.dll 和 Interop.WMPLib.dll 这两个文件,非常麻烦。于是就想着能不能合并为一个文件,那么就很方便了,于是就在网上找各种方法,但由于我技术有限,看不懂大神们写的代码。。。最后找到了使用ILMerge工具来合并文件。

具体步骤:

1、先到 微软官方 https://www.microsoft.com/en-us/download/details.aspx?id=17630  下载并安装。

2、工具安装完毕后,需使用cmd命令提示符进入该目录使用该工具(使用win键+r键 调出运行,在打开文本框输入cmd,点击确定即可。)。

image.png

打开后输入命令:

CD C:\Program Files (x86)\Microsoft\ILMerge

可以先复制上面代码,在 cmd命令提示符 窗口中点击右键。

image.png

3、然后输入命令:(我的是将需要合并的dll和exe放到:D盘的“待合并文件”,完成目录为:D盘“合并完成”,根据需要自行修改。)

ilmerge /ndebug /targetplatform:v4 /target:winexe /out:D:\合并完成\播放器.exe /log D:\待合并文件\简单播放器.exe  D:\待合并文件\AxInterop.WMPLib.dll  D:\待合并文件\Interop.WMPLib.dll

image.pngimage.png


注:/ndebug:为非调试版本,即发布版本,如果去掉,将会生成.pdb拓展名的调试文件

/target:为目标平台,此处输出为WINEXE

        命令的target后面可以接三种类型:

        winexe:合并为应用程序文件

        library:合并为库文件

        exe:合并为exe文件,不同的是打开时会带有cmd命令

/out:合并之后输出的路径及文件名

/log:需要合并的DLL或EXE,需要把所有的合并的EXE或DLL囊括进来

/targetplatform:目标平台,此次为DotNet4.6.2,因此需要目标平台设为v4

image.png

该工具的主要用法如下:

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


扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/167.html

标签: ILMerge
分享给朋友:

“C# 使用ILMerge将dll文件和exe文件合并为单独exe文件” 的相关文章

C# 冒泡排序练习

C# 冒泡排序练习

将数组内的元素 从大到小排序:using System; namespace 冒泡排序 {     class Program     {    ...

C# 抽象类练习(命名不规范)

C# 抽象类练习(命名不规范)

C# 抽象类练习(命名不规范)using System; namespace 抽象类练习 {     class Program     {    ...

C# 简单工厂模式

C# 简单工厂模式

C# 简单工厂模式通过工厂先生产笔记本(抽象类),根据用户需要的品牌(具体类),给用户品牌笔记本。using System; namespace 简单工厂设计模式 {     class Program  &...

C# MD5 32位加密

C# MD5 32位加密

使用C#的MD5类创建MD5 32位加密。界面设计:密文文本框名称:txtmiwenMD5(32)文本框名称:txtmd532加密按钮名称:Btnjiami        private void B...