重要
使用 .NET 和 Native AOT 现代化您的 UWP 应用:如果您正在开发新的 UWP 应用或希望更新现有的 UWP 应用,我们建议您使用支持 Native AOT 的最新 .NET 版本的 UWP,而不是使用 .NET Native。 对新式.NET 的 UWP 支持现已正式发布,并且在 Visual Studio 2026 中是 C# UWP 应用的默认项目类型。 这样可以访问最新的.NET和 C# 功能、改进的工具和调试支持,以及更快的生成时间。 .NET Native 将继续接收安全性和可靠性修补程序,但不会接收新功能更新。
.NET Native 是用于生成和部署 UWP 应用的预编译技术。 .NET Native 包含在 Visual Studio 2015 及更高版本中。 它会自动将用托管代码(C# 或Visual Basic)编写的 UWP 应用的发布版本编译为本机代码。
通常,.NET应用编译为中间语言(IL)。 在运行时,实时 (JIT) 编译器将 IL 转换为本机代码。 相比之下,.NET Native 将 UWP 应用直接编译为本机代码。 对于开发人员,这意味着:
你的应用程序表现出本机代码的性能。 通常,性能优于先编译为 IL 的代码,然后由 JIT 编译器编译为本机代码。
可以继续以 C# 或Visual Basic进行编程。
你可以继续利用 .NET Framework 提供的资源,包括其类库、自动内存管理和垃圾回收以及异常处理。
对于应用的用户,.NET Native 提供以下优势:
大多数应用和方案的执行时间更快。
大多数应用和方案的启动时间更快。
部署和更新成本较低。
优化的应用内存使用情况。
但是,.NET Native 涉及的不仅仅是将代码编译为本机代码。 它转换.NET框架应用生成和执行的方式。 特别是:
在预编译期间,.NET Framework 的必需部分以静态方式链接到你的应用。 这样,应用就可以使用 .NET Framework 的应用本地库运行,并且编译器可以执行全局分析,以提供性能胜利。 因此,即使在.NET框架更新之后,应用也会一直更快地启动。
.NET本机运行时针对静态预编译进行优化,在绝大多数情况下提供卓越的性能。 同时,它保留了开发人员认为非常高效的核心反射功能。
.NET Native 使用与 C++ 编译器相同的后端,该后端针对静态预编译方案进行优化。
.NET Native 能够将 C++ 的性能优势引入托管代码开发人员,因为它使用与 C++ 相同的或类似工具,如下表所示。
| 组件 | .NET Native | C++ |
|---|---|---|
| 图书馆 | .NET Framework + Windows 运行时 | Win32 + Windows 运行时 |
| 编译器 | UTC 优化编译器 | UTC 优化编译器 |
| 已部署 | 可运行的二进制文件 | 准备运行的二进制文件 (ASM) |
| 运行时 | MRT.dll (最小 CLR 运行时) | CRT.dll (C 运行时) |
对于 UWP 应用,将 .NET应用包(.msix 或 .appx 文件)中的本机代码编译二进制文件上传到Microsoft Store。