共用方式為


使用 .NET Native 編譯應用程式

.NET Native 是建置和部署 UWP 應用程式的先行編譯技術。 .NET Native 隨附於 Visual Studio 2015 和更新版本。 它會自動將使用受控程式碼(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 能夠為 Managed 程式代碼開發人員帶來C++的效能優點,因為它使用與C++相同的或類似工具,如下表所示。

元件 .NET 本機 C++
圖書館 .NET Framework + Windows 執行階段 Win32 + Windows 執行階段
編譯器 UTC 優化編譯程式 UTC 優化編譯程式
部署 可執行的二進位檔 立即執行的二進位檔 (ASM)
執行時間 MRT.dll (最小 CLR 執行時間) CRT.dll (C 執行時間)

針對UWP應用程式,您會將應用程式套件中的 .NET 原生程式代碼編譯二進位檔 (.msix 或 .appx 檔案) 上傳至 Microsoft 市集。