年初的一篇文章中提到過一下:
現在已經支援.net 2.0的版本了. 最近由於開發乙個客戶端程式用到多個dll, 因此考慮使用ilmerge來合併成乙個, 這兩天試了一下. 乙個簡單的示例如下:
ilmerge /ndebug /target:exe /targetplatform:v1.1 /out:newclient.exe oldclient.exe /log autoupdater.dll dockingsuite.dll documentmanager.dll filehelpers.dll outlookbar.dll sandbar.dll icsharpcode.sharpziplib.dll
解釋如下:
target: 指定輸出元件的型別,有dll/exe/winexe; (如果是exe,則程式在執行的時候將出現乙個dos視窗(即使是winform的程式). 因此應該設定target為winexe)
targetplatform: 輸出元件的.net執行版本;
out: 合併後的元件全名;
後面是主要的被合併的元件名稱, 及相關所有的其它dll;
上面的示例只是合併為exe, 也可以多個dll合併成乙個dll使用, 各自的命名空間不會改變;
1. 不能合併interop這種由com轉換過來的dll; (可以合併,但相關依賴的dll必須也一起合併, 第一次合併的時候只有excel.dll,總是報錯,以為是interop的緣故,後來才發現是沒有合併vbide.dll的緣故,複製到目錄再一起合併,一切ok.)
2. 如果有資源dll, 應該將要被合併的oldclient.exe先改為別的名稱,然後合併後的輸出命名為:oldclient.exe,因為資源檔名是:oldclient.resources.dll,而ilmerge不能合併資源檔案,否則在匯出後將找不到此資源檔案。(如果哪位知道如何合併資源檔案,請指教,謝謝)
3. 雖然合併後的exe比較大,但在使用者那裡只有乙個exe,這樣直觀的多,也容易公升級維護.
ilmerge合併多個元件 更新
年初的一篇文章中提到過一下 現在已經支援.net 2.0的版本了.最近由於開發乙個客戶端程式用到多個dll,因此考慮使用ilmerge來合併成乙個,這兩天試了一下.乙個簡單的示例如下 ilmerge ndebug target exe targetplatform v1.1 out newclien...
ILMerge合併多個DLL
如果你的專案要提供多個dll給別人用,那麼不妨讓你的dll合併為乙個,讓別人看起來簡潔,引用起來不會過於繁瑣。本篇比較少,但也算是比較實用吧。場景 c盤有2個dll,分別為 c a.dll c b.dll 結果 合併為c c.dll 具體操作 首先我的ilmerge安裝到啦c盤的路徑為 c prog...
ILMerge合併多個DLL
如果你的專案要提供多個dll給別人用,那麼不妨讓你的dll合併為乙個,讓別人看起來簡潔,引用起來不會過於繁瑣。本篇比較少,但也算是比較實用吧。場景 c盤有2個dll,分別為 c a.dll c b.dll 結果 合併為c c.dll 具體操作 首先我的ilmerge安裝到啦c盤的路徑為 c prog...