2012-06-19 93 views
4

可能重複:
Embedding DLLs in a compiled executable如何在Visual Studio中創建獨立的exe文件?

我想要編譯我的C#應用​​程序到一個EXE文件。問題是我的項目在編譯時依賴於許多其他項目,導致Release文件夾中有很多dll。有沒有辦法讓這些dll包含在EXE文件中?

注意:它不需要獨立於.NET框架。我假設任何使用這個exe的人都會安裝它。

+6

另請參閱http://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable – Rawling

回答

8

.NET附帶一個名爲ILMerge的工具,其中可以將多個程序集打包到一個文件中。你會使用它想:

ilmerge /target:winexe /out:myoneexecutable.exe Foo.exe Bar1.dll Bar2.dll 
+0

它沒有打擾我擔心單獨的文件,但我偶然發現這一點,現在當然是theres沒有機會有人會不小心刪除1部分文件,或混合版本等。謝謝! – BugFinder

0

我相信你會得到能夠編譯爲一個可執行文件使用Visual Studio的安裝項目功能最接近/巫師生成標準MSI軟件包,然後你可以用它來分發你的申請。

但是,可能有第三方工具可用於將所有內容壓縮成一個文件。但我不認爲這會讓你得到任何超過標準MSI方法的東西 - 實際上,這只是構建過程中的一個額外的手動步驟,您並不需要這麼做。

1

ILMerge是一個選項,但它不能合併WPF程序集。您可以將程序集作爲資源嵌入並動態加載它們。請參閱this Richter article

相關問題