是否可以將整個c#控制檯應用程序與其應用程序文件夾/文件打包到一個可執行文件中,以便在運行時不需要在計算機上安裝它?將整個C#控制檯應用程序打包到一個文件中?
回答
如果沒有很多資源的DLL(有翻譯字符串,在不同的子文件夾),那麼你可以使用ILMerge爲DLL文件做到這一點:
http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx
ILMerge是一個可用於將多個.NET程序集合合併爲一個程序集的實用程序。
如果您還有其他文件,您將不得不將它們作爲資源添加到您的程序並在運行時解壓縮它們。
看到這裏就如何嵌入資源文件,並在運行時提取它們的詳細信息:
http://support.microsoft.com/kb/319292
簡單地說:你已經添加到您的項目中嵌入的資源後,你這樣做:
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("MyNamespace.MyResourceFileName");
// ... do something with stream, e.g. write it out to a file.
[編輯]
喲你實際上可以完全廢除ILMerge,並擁有更強大的解決方案。
看到這裏的細節:http://blog.nenoloje.com/2011/08/better-alternative-to-ilmerge.html
ILMerge的作者說,這「作爲ILMerge的作者,我認爲這是美妙的,如果我早知道這一點,我從來不會寫ILMerge「
這是傑弗裏裏希特寫的,我希望這裏的大多數人都會聽說過。 :)
一個好的開始是這個工具http://ilmergegui.codeplex.com/這是ilmerge的gui包裝。 –
[ILRepack](https://github.com/gluck/il-repack)是一個開源替代方案(針對ILMerge) – Gluck
- 1. 將音樂文件添加到C++控制檯應用程序
- 2. 將一個kivy應用程序打包成一個exe文件
- 3. 將整個Python應用程序打包爲PEX文件
- 4. 從控制檯應用程序輸入到另一個C#控制檯應用程序?
- 5. C# - 從控制檯應用程序發送數據到另一個控制檯應用程序
- 6. 控制檯應用程序:打印到控制檯溢出
- 7. C#應用程序在控制檯中使用另一個應用程序
- 8. 將一行「數據」從一個C#控制檯應用程序傳遞到另一個C#控制檯應用程序的最佳方式是什麼?
- 9. C#中的第一個控制檯應用程序#
- 10. 在C中逐行啓動一個控制檯應用程序#
- 11. 顏色在一個框中,c#控制檯應用程序
- 12. 一個控制檯應用程序,許多配置文件
- 13. C#控制一個控制檯進程
- 14. 如何從「轉到」另一個控制檯應用程序中編寫的控制檯應用程序轉移?
- 15. Phonegap Build將整個資源文件夾打包到每個平臺包中?
- 16. 將數據從一個控制檯應用程序發送到另一個控制檯
- 17. 如何打包一個VC++ Win32控制檯應用程序和DLL
- 18. 最快的方法來打包一個Java控制檯應用程序
- 19. 在控制檯應用程序中打開pdf文件
- 20. MCI_OPEN失敗在一個C++控制檯應用程序的MP3文件
- 21. 將C#控制檯應用程序合併到MVC 4應用程序中
- 22. C++應用程序中的控制檯
- 23. C#控制檯應用程序中斷?
- 24. 將文件拖放到控制檯應用程序
- 25. 將整個控制檯輸出輸出到文本文件
- 26. C++控制檯應用程序連接到android應用程序
- 27. Pi 3上的Python打開並控制一個控制檯應用程序
- 28. Debug文件夾中在Visual Studio中打開C#控制檯應用程序2008
- 29. 控制檯應用程序中的App.Config文件C#
- 30. C#控制檯應用程序中的正確文件路徑
即使它包含很多程序集,您不必安裝它,您可以只複製整個文件夾。 – ElDog
我的應用程序也包含一些html/js/css文件。他們可以打包到.exe文件中嗎? – Raskolnikoov
是的,作爲一個嵌入式資源。這比將程序集打包到一個可執行文件中更容易也更常見。看到Matthew Watson的回答。 – ElDog