2016-11-11 89 views
6

我已經搜索了這個,並有一些以前的答案,但都顯得過於複雜。如何將C#控制檯應用程序作爲單個exe部署?

我是C#和Windows開發人員(以前的Mac開發人員)的新手。

我已經使用Visual Studio Community Edition在C#中編寫了一個簡單的控制檯應用程序。我的應用程序使用兩個第三方庫(CommandLineParser和json.NET)與VS中的NuGet一起添加到我的項目中。

我想要做的就是將我的項目構建爲獨立的.exe文件,該文件可以簡單地從命令提示符運行,而不必擔心最終用戶需要安裝很多DLL(我沒有使用過的東西作爲一個新的Windows用戶來處理)。我知道最終用戶需要安裝.NET框架。在我的使用案例中是否有一個防白癡的指南來構建一個.exe文件?

我不禁想到這一定是一個非常普遍的問題。

謝謝。

+2

這確實很常見。然而,沒有默認的解決方案,所以這個問題。我從來不需要它,但我知道一個名爲[Fody.Costura](https://github.com/Fody/Costura)的nuget包,它可以將您的依賴項(dll和東西)作爲資源打包到應用程序中。另一種可能性是ILMerge基本上是一樣的 – nozzleman

+7

你可以檢查這個http://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable – Miguel

+0

不知道什麼版本的vs你是使用。使用vs 2013,您可以使用installshield限制版(免費版),而且它也很出色。簡單,直接向前gui,正確與vs指導ui。它會檢查.net等依賴項,並在需要時將它們安裝在客戶端上,等等。您還可以配置爲添加二進制文件。你最終得到一個文件夾和一個setup.exe – nocturns2

回答

4

另外,如果你想運行即席測試,看看它真正的作品,並把它做得比較快,你可以嘗試使用ILMerge-GUI

前面我已經努力通過自身使用ILMerge。使用圖形用戶界面,我可以更快地驗證是否可以使所有的工作都能正常工作。

5

您可以將庫與ILMerge合併,並將其作爲Visual Studio中的後期構建事件運行。這將創建一個與所有圖書館的exe。您將會找到關於ILMerge here的更多信息。

相關問題