2010-08-18 72 views
0

我的情況:我有一個app.exe和它的幾個dll - a.dll,b.dll,c.dll等(它們來自單個VS解決方案,由許多項目組成)。我想合併(ilmerge)所有dll到一個,所以我會:app.exe + x.dll。如何將所有dll合併爲一個應用程序?

現在,有一個問題 - 應用程序期望擁有所有的DLL,所以當我把單個文件x.dll它不會運行。那麼如何「重定向」應用程序以使用一個x.dll - 是否有可能?

我知道的一個解決方案是刪除所有對Visual Studio中的項目的引用,並添加引用合併的dll。但是這會在重新編譯解決方案時禁用依賴鏈。

Btw。我無法將exe和dll合併在一起,因爲這是一個wpf應用程序,ilmerge無法處理它。

回答

3

你可以代替創建3個DLL來創建3個.NetModules,並將它們變成一個DLL。這需要編輯實際的CSPROJ文件,因爲創建.NetModules目前沒有集成到MSBuild系統中,但可以完成。

您可以將.NetModule看作C/C++中的一種靜態庫。當然也有差異,但總體來說這個概念是相似的。當試圖製作包含多種.NET語言的單個DLL時,它們是最常見的,但它們也適用於您。檢查出來here

+0

非常感謝。由於我的項目不是很大,而不是學習MSBuild,所以我簡單地創建了一個大項目,其中包含其他項目的文件作爲鏈接添加到子目錄中。那種醜陋,但幾乎不需要手動更改,它很快,它的工作原理:-) – greenoldman 2010-08-27 18:06:05

相關問題