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

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

小道6年前 (2019-01-10)C#练习6295

今天在将 简单播放器 生成时发现,生成包内包含两个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://www.daobk.com/post/167.html

标签: ILMerge
分享给朋友:

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

C# 求矩形面积 WindowsForms界面

C# 求矩形面积 WindowsForms界面

使用 C#语言,WinForm 制作求矩形面积软件:源码:        private void bnt_Click(object sender, EventArgs ...

C# 冒泡排序练习

C# 冒泡排序练习

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

C# 简单 控制台 飞行棋 附源码

C# 简单 控制台 飞行棋 附源码

简单C# 控制台飞行棋,使用 int数组 用于创建地图。图例: 幸运转盘: ◎    地雷: ☆    暂停: ▲    时空隧道: 卐using System; namespace 飞行棋 {  &...

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

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

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

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。