2009-08-08 95 views
9

是否可以將.NET 2.0應用程序部署爲可移植可執行文件? 這樣我的程序就可以運行在目標機器上沒有安裝.NET Framework 2.0的閃存盤中。或者也許有可能使用必需的.NET DLL來分發我的程序,以便不需要安裝框架?將C#(.NET 2.0)應用程序部署爲便攜式應用程序?

我知道有一些替代工具可以將我的.NET EXE文件轉換爲像RemoteSoft Salamander,Xenocode Postbuild和Thinstall這樣的單個本機可執行文件,但不幸的是我買不起一個。

我也試圖嵌入與Mono的mkbundle的依賴,但它搞砸我的計劃了= \(沒有XP的視覺風格,打破了一些控制和它的功能)

任何形式的幫助,將不勝感激:)

謝謝。我的IDE是以.NET Framework 2.0作爲目標框架的Microsoft Visual C#2008 Express Edition。

回答

9

好了,比之類的蠑螈和Thinstall(現在VMWare的ThinApp的)其他的你就必須有.NET安裝如果你真的想運行.NET。

可能有可能運行Mono實際上沒有安裝它(不靜態鏈接您的程序,但包括在閃存驅動器上的單聲道)。我懷疑它會很棘手,因爲你必須告訴運行時有關GAC位置的事情。

我在Mono FAQ中看不到任何關於此的內容,但是您可能想要ping一個Mono郵件列表 - 這聽起來像是一個潛在有趣且有用的事情。

8

否;你需要安裝框架,或者你提到的工具。

可以可能看單的新靜態鏈接,但也差不多了......

1

那麼Thinstall是非常昂貴的,它不適用於所有情況。如果你想在沒有安裝.Net的情況下運行你的應用程序,你可能會遇到麻煩,儘管有些工具可以爲你做這件事,它比thinstall便宜。

但是,如果你問我的意見,使用它們是一個壞主意。更好地說服你的目標市場安裝.net 2(這幾天非常普遍),然後使用更便宜的混淆器工具(從Smartassembly有一個很好的工具)將所有庫文件打包到一個文件中。

我已經使用了很長時間的Thinstall,並且我已經在這項技術上做了很多工作,所以我沒有經驗沒有開槍。

1

我還沒有嘗試過這個自己,但這裏的程序:

  • 做一個C#項目。
  • 在解決方案資源管理器中,您的項目中有一行「參考」。點擊附近的加號。現在你可以看到你的項目的所有依賴。刪除所有未使用的引用(刪除,並嘗試運行/構建,如果可以這樣做,它是未使用的,如果有錯誤,請通過添加它來返回(右鍵單擊「添加引用「))。
  • 對於每個參考,請轉到屬性,並在屬性「複製本地」中選擇「True」。對於每個圖像,圖標......都會引用它們。
  • 重建您的項目。現在在您的Build/Release文件夾(在bin內),您將看到許多dll文件。這些文件具有每個資源的信息。
  • 將文件夾中的所有文件(從第4步開始)複製到新文件夾中。
  • 轉到文件夾:「\ Microsoft.Net \ Framework \」,並將文件「mscrolib.dll」複製到步驟5中的新文件夾中。如果未找到此文件,則始終可以進行搜索包含Windows文件夾的硬盤。
  • 現在你的應用程序是可移植的(具有整個文件夾內容)。

- 資料來源:http://www.codeproject.com/Tips/392308/Csharp-Portable-Exe-File

+0

工作的呢? – Andreas 2013-12-20 13:36:45