使用 .NET Native 编译引用Compiling Apps with .NET Native

本文内容

.NET Native 是一种用于生成和部署 Visual Studio 2015 及更高版本附带的 Windows 应用的预编译技术。它自动将以托管代码(C# 或 Visual Basic)编写并面向 .NET Framework 和 Windows 10 的发布版本的应用编译为本机代码。

通常,定位于 .NET Framework 的应用会被编译到中间语言 (IL) 中。在运行时间,及时生成 (JIT) 编译器将 IL 翻译为本机代码。与此相反,.NET Native 会直接将 Windows 应用编译为本机代码。对于开发者,这意味着:

  • 您的应用程序具有本机代码的性能。通常,性能比首次编译为 IL 的代码更优越,并由 JIT 编译器编译为本机代码。

  • 你可以继续用 C# 或 Visual Basic 进行编程。

  • 你可以继续使用 .NET Framework 提供的资源,包括类库、自动内存管理、垃圾回收和异常处理。

对于你的应用程序的用户,.NET Native 具有以下优势:

  • 大多数应用和方案的执行时间更快。

  • 大多数应用和方案的启动时间更快。

  • 低部署和更新成本。

  • 优化的应用内存使用情况。

重要

对于绝大多数应用和方案,与编译到 IL 或 NGEN 映像的应用相比,.NET Native 提供明显更快的启动时间和更高的性能。但是,您的结果可能会有所不同。若要确保你的应用程序已受益于 .NET Native 的性能增强,你应将其性能与应用程序的 non-.NET 本机版本的性能进行比较。有关详细信息,请参阅性能会话概述

但 .NET Native 只涉及到本机代码的编译。它会改变 .NET Framework 应用的创建和执行方式。具体而言:

  • 在预编译期间,所需的 .NET Framework 部分会静态连接到你的应用。这允许应用同 .NET Framework 的应用本地库一起运行,并且允许编译器执行全局分析,从而提供性能优势。因此,应用甚至在 .NET Framework 更新后会启动得更快。

  • .NET Native 运行时针对静态预编译进行了优化,在大多数情况下,可提供优异的性能。同时,它保留了开发者认为非常高效的核心反射特性。

  • .NET Native 使用与C++编译器相同的后端,它针对静态预编译方案进行了优化。

.NET Native 可以将性能优势提高C++到托管代码开发人员,因为它使用的工具与此表中所C++示的相同或类似的工具。

.NET NativeC++
.NET Framework + Windows 运行时Win32 + Windows 运行时
编译器UTC 优化编译器UTC 优化编译器
已部署随时可以运行的二进制代码随时可以运行的二进制代码 (ASM)
运行时MRT.dll(最短 CLR 运行时)CRT.dll(C 运行时)

对于适用于 Windows 10 的 Windows 应用,可将应用程序包(.appx 文件)中的 .NET 本机代码编译二进制文件上载到 Windows 应用商店。

本节内容In This Section

要查看有关带有 .NET Native 代码编译的应用开发的信息,请参阅以下主题: