http://tech.it168.com/a2009/0209/264/000000264789.shtml
【IT168 技術文檔】這幾天在做自己的一個小程式,因為使用了3層架構,運行目錄下有很多dll檔案,最終發布時,我打算將dll檔案都合并到exe檔案中去。微軟發布的免費軟體ILmerge可以完成這項工作,研究了一下,其用法如下:
1、合并file1.dll、file2.dll到destination.dll
ILmerge /ndebug /target:dll /out:C:\destination.dll /log C:\file1.dll C:\file2.dll
2、合并file1.dll、file2.dll以及myApp.exe到newApp.exe
ILmerge /ndebug /target:winexe /out:C:\newApp.exe /log C:\myapp.exe C:\file1.dll C:\file2.dll
注意:合并為exe時,myapp.exe必須寫在file1.dll、file2.dll前面
完成之後,就得到了一個exe檔案,如果想做一些邪惡的事情,可以將一些破解軟體的dll合并到你的exe中去。前提是,所有的dll都是託管的,如果嘗 試合并C++寫的dll,則會失敗。有一個工具,叫做mergebin.exe,可以合并託管和非託管dll,用法我還沒研究出來,似乎比較困難的樣子。 這個工具是ADO.NET 2.0 Data Provider for SQLite的作者寫的,他發布的System.Data.SQLite.dll可以被dotNet程式引用,還可以直接被C/C++程式調用,這個 dll就是託管和非託管混合的dll,果然是很牛的!mergebin.exe在其源碼包裡,有興趣的朋友可以研究一下。
開源GUI下載:http://ilmergegui.codeplex.com/releases/19805/download/50077