ILMerge
ILMerge是一個將多個.NET程序集合並到一個程序集中的實用程序。它可以免費使用,並以NuGet包的形式提供。
如果您在使用它時遇到任何問題,請與我們聯系。(mbarnett at microsoft dot com)。但首先嘗試閱讀文檔。
ILMerge接受一組輸入程序集並將它們合並到一個目標程序集中。輸入程序集列表中的第一個程序集是主程序集。當主程序集是可執行文件時,目標程序集將創建為具有與主程序集相同的入口點的可執行文件。此外,如果主程序集具有強名稱,並且提供了.snk文件,則使用指定的鍵重新簽名目標程序集,以使其具有強名稱。
ILMerge打包為控制台應用程序。但它的所有功能也可以通過編程方式獲得。
有幾個選項可以控制ILMerge的行為。有關詳細信息,請參閱該工具隨附的文檔。
目前的版本是2.14.1208(2014年12月8日創建)。注意:不再有在v1.1運行時中運行的ILMerge版本。
ILMerge在v4.0 .NET運行時中運行,但它也能夠使用它來合並來自其他框架版本的程序集/targetplatformoption
。請參閱文檔。(但是,它只能為v2(及更高版本)程序集合並PDB文件。)
目前,ILMerge僅適用於基於Windows的平台。它還不支持Rotor或Mono。
如果使用ASP.NET v2.0,則它提供了一個工具(基於ILMerge)來組合在預編譯期間創建的程序集。您可以從ASP.NET網站獲取更多詳細信息。
安裝
如ilmerge NuGet頁面所述,該軟件包可以從Visual Studio環境安裝。在Solution Explorer
視圖中展開項目容器。右鍵單擊references
並選擇Manage NuGet Packages
確保Package source
設置為nuget.org
接下來,單擊Tools - NuGet Package Manager - Package Manager Console。確保Package source
也設置為nuget.org
要為項目安裝,請使用Install-Package命令:
用法
MSBuild
ILMerge可以使用NuGet包在MSBuild中使用:
編輯項目.csproj
或.vbproj
文件(在相應<Project> .. </Project>
標記內,通常在文件末尾。如果編譯特定目標,請使用顯式目錄,例如Bin\x64\Release
:
雖然XML文件中通常會忽略空格,但在這種情況下,確切的文本將作為DOS命令處理,因此為了提高可讀性,請使用克拉^
(shift 6)行擴展器:
DOS dir / b選項可以幫助列出所有依賴項:
從Visual Studio Developer命令提示符:
ILMerge
在批處理文件中運行:
此處不需要Visual Studio Developer命令提示符,因為msbuild
未使用。