Dot-Net-3.5

.NET 世界中的靜態編譯

  • March 11, 2010

我將為擁有 WinXP 機器的客戶端編寫一個小型桌面應用程序,並且他們不會安裝 .NET 框架(至少對我來說不是)。

所以我的選擇僅限於 C++ 或 VB6,它們聽起來都不是很好。我記得那天讀到 Mono 提出了一個靜態編譯器,但最近我唯一能找到的是 Miguel de Icaza 關於遊戲引擎靜態編譯的條目,目的是在 iPhone 上執行應用程序 - 而不是我的想到了。

是否有任何免費或商業產品可以讓我靜態編譯我的 .net 3.5 winform 應用程序?

謝謝

您可以嘗試使用Remotesoft Salamander。

它完全符合您的要求。

Mono 極大地改進了對 Ahead of Time 編譯 (AOT) 的支持,假設您願意/能夠以 Mono 而不是 .Net 執行時為目標,那麼幾乎可以靜態編譯任何 CIL 應用程序。

總體而言,這是否是一個好主意完全取決於應用程序和您的限制。

例如,Novell 現在發布了 MonoTouch,這是一個完全 AOT 編譯和連結的 CLI 實現,允許 .Net 應用程序(不僅僅是遊戲)在 iPhone 上針對 CocoaTouch 框架執行。

這些相同的 AOT 技術可用於編譯不需要 .Net 或 Mono 執行時作為先決條件的 Winforms 應用程序。有很多與 AOT 相關的性能權衡(正面和負面),所以如果沒有盡職調查,我不會繼續前進。


編輯:

回答 John Saunders 關於“為什麼不為他們安裝它?”的問題。這實際上提出了您可能需要 AOT 編譯的一個原因。引導程序。

為了安裝任何東西,你必須執行一個執行檔。您可以分發 MSI(將隱式啟動 msiexec.exe),也可以分發 exe。MSI 雖然功能強大,但開發人員的體驗非常糟糕。因此,您可以使用 .NET 建構您的引導程序(AOT 編譯消除了執行時依賴),它會在安裝您的應用程序之前安裝任何必要的先決條件(例如 .NET)。

此外,一些公司可能需要發布不需要使用者安裝任何東西(靜默或其他方式)的可下載執行檔。

還有一個:安裝 .NET 需要管理權限。AOT 可以讓您繞過對您的應用程序的要求。

同樣,這是否是一個好主意完全取決於應用程序和您的約束。

引用自:https://stackoverflow.com/questions/671933