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

原创 小道  2019-01-10 14:45:50  阅读 899 次 评论 0 条
摘要:

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

今天在将 简单播放器 生成时发现,生成包内包含两个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
版权声明:本文为原创文章,版权归 小道 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?