【问题标题】:Can we compile an asp.net 5 application by .net native?我们可以通过.net native 编译一个asp.net 5 应用程序吗?
【发布时间】:2015-07-21 17:42:57
【问题描述】:

.net 原生在 .net 生态系统中的角色让我感到困惑。我听说它只是用于通用 Windows 应用程序,但也听说它是 CoreFX 的一部分。我认为可以选择编译为 .net native 有很多优势(包括性能)。

是否可以将我的 asp.net 应用程序(特别是 asp.net 5)编译为 .net native?

【问题讨论】:

    标签: asp.net .net coreclr .net-native


    【解决方案1】:

    不,你不能。目前,.NET Native 不适用于 ASP.NET。我相信它只适用于通用 Windows 应用程序。这并不意味着有一天它不会可用,但目前还没有计划。

    请参阅related GitHub issue ASP.NET 团队确认这一点。

    2015 年 11 月 27 日编辑

    自发布此消息以来,Microsoft 已就 .NET Native 和 .NET Core 发布了进一步的公告。我建议您查看 Scott Hanselman 在 Microsoft Connect 2015 活动中的主题演讲部分。在this excerpt videoScott 的 11:22 分钟标记处显示将 .NET 应用程序编译为本机代码然后运行它。他说这是“未来的工作”,所以它似乎还没有准备好(我相信活动中的一个问答视频解释说它位于 GitHub 上的一个开发分支中,但我懒得重新观看所有视频你现在)。目前尚不清楚这是否仅适用于控制台应用程序,或者它是否会运行 ASP.NET。

    【讨论】:

    • github.com/dotnet/llilc上有一个编译器项目。他们正在为所有平台准备 AOT 编译器……但这还很遥远。
    • 您能否简要介绍一下主题演讲中宣布的内容?
    【解决方案2】:

    正如 Thomas 在 cmets 中所说,一旦 LLILC 出来,这应该是可能的。它针对运行 ASP.NET 5 的 .NET Core。我不确定生成的运行时是否可以称为 .NET Native,但 LLILC 确实计划提前本地编译 IL(例如 Roslyn 的输出)。

    另一个选项是使用 RyuJIT 作为 AOT 编译器在 CoreRT 上运行的 ASP.NET。这在今天看起来比 LLILC 更接近现实。看过一些在 CoreRT 上编译 ASP.NET 项目的实验,但没有任何实际效果。

    [.NET Native 使用 UTC 编译器进行编译以在某些 C++ 运行时上运行(MRT - 最小运行时或托管运行时,不记得了,也称为 Native 运行时)。目前 .NET Native UWP 应用程序是特定于 Windows 的。尽管 .NET Native 和 UWP 在 .NET Core 下进行宣传,但这可能会产生误导,因为 UWP 仅在调试模式下以 CoreCLR 为目标,在发布模式下,它以 Windows 特定的本机运行时为目标。 LLILC/CoreRT 应该改变这一点。]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多