使用 .NET Native 編譯應用程式
.NET Native 是用於建置及部署 Windows 應用程式的先行編譯技術。 .NET Native 隨附於 Visual Studio 2015 和更新版本。 這可將以 Managed 程式碼 (C# 或 Visual Basic) 撰寫的 UWP 應用程式發行版本自動編譯為機器碼。
一般而言,.NET 應用程式會編譯為中繼語言 (IL)。 在執行階段,just-in-time (JIT) 編譯器會將 IL 轉譯成機器碼。 相反地,.NET Native 會將 UWP 應用程式直接編譯成機器碼。 對開發人員而言,這表示:
您的應用程式具有機器碼的效能。 通常,效能會優於先編譯為 IL 的程式碼,然後由 JIT 編譯器編譯成機器碼。
您可以繼續以 C# 或 Visual Basic 進行程式設計。
您可以繼續利用 .NET Framework 所提供的資源,包括其類別庫、自動記憶體管理和記憶體回收,以及例外狀況處理。
針對您的應用程式使用者,.NET Native 提供下列優點:
大部分應用程式和案例的執行時間更快。
大部分應用程式和案例的啟動時間更快。
部署和更新成本低。
最佳化的應用程式記憶體使用量。
但 .NET Native 涉及的不只是編譯為機器碼。 它會將轉換 .NET Framework 應用程式建置和執行的方式。 特別是:
在先行編譯期間,.NET Framework 的必要部分會以靜態方式連結至您的應用程式。 這可讓應用程式使用 .NET Framework 的應用程式本機程式庫執行,而編譯器可執行全域分析以提供效能優勢。 如此一來,即使 .NET Framework 更新之後,應用程式還是一貫地會以更快的速度啟動。
.NET Native 執行階段已針對靜態先行編譯進行最佳化,而且在絕大多數的情況下提供優越的效能。 同時,它還保留了開發人員會覺得生產力極佳的核心反映功能。
.NET Native 使用與 C++ 編譯器相同的後端,其已針對靜態先行編譯案例進行最佳化。
.NET Native 能夠將 C++ 的效能優勢帶給 Managed 程式碼開發人員,因為其本質上使用與 C++ 相同或類似的工具,如下表所示。
元件 | .NET Native | C++ |
---|---|---|
程式庫 | .NET Framework + Windows Runtime | Win32 + Windows 執行階段 |
編譯器 | UTC 最佳化編譯器 | UTC 最佳化編譯器 |
已部署 | 可立即執行的二進位檔案 | 可立即執行的二進位檔案 (ASM) |
執行階段 | MRT.dll (最小 CLR 執行階段) | CRT.dll (C 執行階段) |
針對 UWP 應用程式,您可將應用程式套件中的 .NET Native 程式碼編譯二進位檔 (.msix 或 .appx 檔案) 上傳至 Windows Store。