我試圖用ILMERGE將庫合併到另一個庫中。ILMERGE輸出小於合併庫
主組件約33 kb大,與其合併的組件約爲5 Mb。 合併後,新組件大小爲1.2 Mb。
我想從理解合併日誌的一些幫助,因爲我不認爲合併的程序集應該是這麼小。
這裏是日誌:
ILMerge版本2.13.307.0 版權所有(c)Microsoft公司2004 - 2006年。版權所有。 ILMerge /lib:C:\Windows\Microsoft.NET\Framework\v4.0.30319/lib:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ PublicAssemblies/t:dll/log:merge。 log/zeropekind /targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319/out:ericsconnectionsM.dll ericsconnections_32.dll chilkatdotnet45.dll 將平臺設置爲'v4',使用目錄'C:\ Windows \ Microsoft.NET \爲mscorlib.dll中 運行在Microsoft(R)的.NET Framework v4.0.30319 mscorlib.dll中版本=框架\ v4.0.30319' 4.0.0.0 輸入組件的列表是: ericsconnections_32.dll chilkatdotnet45 .dll 嘗試從文件'C:\ Users \ eervawo \ Documents \ Visual Studio 2010 \ Projects \ EricsConnections \ EricsConnections \ bin \ Debug \ ericsconnections_32.dll'中讀取程序集。 在裝配中成功讀取。 EricsConnections_32的元數據中沒有報告錯誤。 嘗試從文件'C:\ Users \ eervawo \ Documents \ Visual Studio 2010 \ Projects \ EricsConnections \ EricsConnections \ bin \ Debug \ chilkatdotnet45.dll'中讀取程序集。 找不到PDB文件。調試信息將不可用於程序集'chilkatdotnet45.dll'。 在裝配中成功讀取。 ChilkatDotNet45的元數據中沒有報告錯誤。 檢查所有輸入組件是否具有兼容的PeKind。 ChilkatDotNet45.PeKind = 0 'ChilkatDotNet45'的有效PeKind將被視爲:ILonly 所有輸入程序集都具有兼容的PeKind值。 AssemblyResolver:Assembly'EricsConnections_32'引用程序集'System.Xml.Linq'。 AssemblyResolver:試圖引用程序集的目錄。 AssemblyResolver:在引用程序集目錄中沒有找到程序集。 AssemblyResolver:嘗試輸入目錄。 AssemblyResolver:未在輸入目錄中找到程序集。 AssemblyResolver:嘗試用戶提供的目錄。 解決了程序集引用'System.Xml.Linq'爲'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.Xml.Linq.dll'。 (使用客戶端提供的目錄。) 找不到PDB文件。調試信息將不可用於程序集「System.Xml.Linq」。 AssemblyResolver:Assembly'EricsConnections_32'引用程序集'System.Core'。 AssemblyResolver:試圖引用程序集的目錄。 AssemblyResolver:在引用程序集目錄中沒有找到程序集。 AssemblyResolver:嘗試輸入目錄。 AssemblyResolver:未在輸入目錄中找到程序集。 AssemblyResolver:嘗試用戶提供的目錄。 已解決的程序集引用「System.Core」爲「C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.Core.dll」。 (使用客戶端提供的目錄。) 找不到PDB文件。調試信息將不可用於程序集「System.Core」。 使用裝配'EricsConnections_32'作爲目標裝配的裝配級屬性。 將組件'EricsConnections_32'合併到目標組件中。 將組件'ChilkatDotNet45'合併到目標組件中。 從目標程序集中刪除程序集'ChilkatDotNet45'的程序集級別屬性'System.Security.AllowPartiallyTrustedCallersAttribute' 將程序集'EricsConnections_32'中的8個Win32資源複製到目標程序集。 目標程序集的元數據中沒有報告錯誤。 ILMerge:編寫目標程序集'ericsconnectionsM.dll'。 AssemblyResolver:Assembly'System'引用程序集'System.Configuration'。 AssemblyResolver:試圖引用程序集的目錄。 找不到PDB文件。調試信息將不可用於程序集「System.Configuration」。 已解決的程序集引用「System.Configuration」爲「C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.Configuration.dll」。 (用於引用模塊的目錄) 引用模塊'KERNEL32.dll'的位置是'' 引用模塊的位置''是'' 引用程序集'mscorlib'的位置是'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscorlib.dll' mscorlib的元數據中沒有報告錯誤。 引用程序集'Microsoft.VisualBasic'的位置是'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.VisualBasic.dll' 在Microsoft.VisualBasic的元數據中沒有報告錯誤。 引用程序集'System.Xml.Linq'的位置是'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.Xml.Linq.dll' System.Xml.Linq的元數據中沒有報告錯誤。 引用程序集'System.Core'的位置是'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.Core.dll' 在System.Core的元數據中沒有報告錯誤。 引用程序集'System.Data'的位置是'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ System.Data.dll' 在System.Data的元數據中沒有報告錯誤。 引用程序集'系統'的位置是'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ system.dll' 系統元數據中沒有報告錯誤。 ILMerge:完成。
怎麼回事?
如果您無法合併混合模式程序集,那麼如何使用此混合模式程序集創建一個程序集?有沒有辦法將這種混合模式程序集作爲資源添加?但是,我如何加載它? – Eric
您需要習慣無法合併C++/CLI程序集的想法。當然,你可以將它合併到一個名爲* setup.exe *的文件中,當然你以前看過這個文件。 –