ILMerge使用,dll類庫合並


最近做了一個數據成圖組件,是對一個com控件的二次開發。

該com控件是個窗體控件在使用過程中自動生成了以AxInterop開頭的AxInterop.****.dll和以Interop.開頭的Interop.****.dll兩個中間類,而這兩個類放置的位置必須與最終的窗體同目錄。

我開發的.net組件名稱為:DCGjogis.dll,假設調用該組件生成的windows窗體程序為AAA.exe,要求AAA.exe與DCGjogis.dll同目錄,因此結果就是,該目錄下包含4個文件,分別為:AAA.exe,DCGjogis.dll,AxInterop.****.dll,Interop.****.dll

要求是該目錄下只能包含AAA.exe,DCGjogis.dll兩個文件,剩余的AxInterop.****.dll,Interop.****.dll兩個文件必須放置在指定的文件夾中。

為了解決這個問題,研究了好久,都沒有什么好的辦法,后來終於找到一個取巧的辦法,就是使用ILMerge合並dll類庫。

 

1、下載並安裝ILMerge.exe

2、我的安裝目錄是:D:\Program Files (x86)\ILMerge,然后在cmd命令中,進入該目錄

3、在該目錄下運行ILMerge.exe命令,我的命令是:

ILMerge.exe /ndebug /target:library  /out:DCGjogis.dll DLL/DCGjogis.dll  /log DLL/AxInterop.****.dll DLL/Interop.****..dll

/target 是輸出類型;/out是輸出dll類名稱;/log是要合並的dll類名稱,由於我的其它類是放置在“DLL”目錄下,因此帶有路徑。

注意:

1、原始DCGjogis.dll自身包含其它引用類,都需要放置在與原始DCGjogis.dll相同的目錄下。

2、如果原始DCGjogis.dll自身包含其它引用類,而其它引用類是相對路徑的話,那么其它引用類每次更新,合並DCGjogis.dll都需要重新合並制作。

 

通過合並,最終實現了AAA.exe,DCGjogis.dll同目錄,即可運行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM