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 日志
可能的出現問題: