gpt4 book ai didi

.net - .Net Core 是否生成与标准 .Net 相同的 IL?

转载 作者:行者123 更新时间:2023-12-04 15:32:34 25 4
gpt4 key购买 nike

我们有 this announcement .Net Core 被重命名为 1.0(令人困惑,但很好,无论如何)。汉塞尔曼在其中指出

It doesn't yet support VB or F#.


这让我觉得我错过了一些东西。我的逻辑如下。
以两个简单的 Hello World 应用程序为例,一个在 C# 中,另一个在 VB 中。假设您保持简单,在使用标准 MSBuild/.NET 框架进行编译时,您应该获得相同的 IL。我的理解是,您可以让 .Net 核心运行相同的 dll,因为它在该级别都是 IL。那为什么说它不支持VB呢?是不是除了简单的情况(您可能会引用特定于 VB 的东西)之外它不支持它?或者是为 .Net Framework 和 .NET Core 编译时生成的实际 IL 不同,并且还没有 VB/F# 编译器?

最佳答案

是的,它生成相同的 IL

(我忍不住回答这么简单)

尽管如此,对于 VB 部分:关于 VB 支持:在 .NET Core 上运行需要一个编译器(在 Roslyn 中实现),一个 CLI 命令 dotnet-compile-vb (尚未实现...对于 F#,社区现在已经交付了它)和支持的版本 Microsoft.VisualBasic (在corefx 中实现)。我想 VisualBasic 支持的要点与例如相同ASP.NET SignalR。代码 95% 都在那里,它可以运行,但没有经过官方测试和支持。这是时间问题而不是技术问题。

恕我直言:考虑到 Microsoft.VisualBasic程序集在那里并且 IL 是相同的,理论上它甚至可以执行编译的 VB 程序集,只要编译器使用基于 System.Runtime 的 Core 平台。

PS 2019 年 5 月:他们刚刚宣布移植大部分 VB .NET 运行时

关于.net - .Net Core 是否生成与标准 .Net 相同的 IL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34906969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com