天天看點

【原創】小技巧減少釋出檔案數量,合并exe與dll一、前言二、ILMerge三、其他

一、前言

有時候我們釋出一個元件,不希望暴露出我們使用的dll,希望以最簡潔的方式部署我們的元件。

比如一個自動更新元件,含有update.exe和a.dll,b.dll。

當我使用這個元件的時候,我希望把它本身的dll與exe進行合并,這樣就避免了我在更新檔案的過程中,遇到與自身調用的dll重名的檔案無法更新的問題。(因為有可能業務系統也調用了2個dll,名字恰好叫做a.dll,b.dll)

二、ILMerge

據說是一個MS的牛人所做,官方下載下傳位址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&displaylang=en。

這玩意可以把.net平台下的元件進行合并。也包括非托管的元件哦~

工具下載下傳下來之後,使用cmd指令可以進入ILMerge所在檔案夾,然後我們就可以輸入指令了:

指令格式如下:

ilmerge /ndebug /target:[輸出檔案類型] /out:[輸出檔案名]/log [要合并的檔案1] [要合并的檔案2] [要合并的檔案3]

下面是例子:

1)我有一個exe,調用了一個dll

2)使用ILMerge将他們合并為一個exe:

指令:

結果:

三、其他

ILMerge也支援以程式設計方式進行上述操作,具體還沒研究過,可以參考以下文章:

a)http://www.raymanzhai.com/article.asp?id=65

b)http://hi.baidu.com/xyesterday/blog/item/50e11f35535a79a5d1a2d3f6.html