我们宣布.Net Core将重命名为1.0(令人困惑,但很好,无论如何)。汉塞尔曼在其中说
它还不支持 VB 或 F#。
这让我觉得我错过了什么。我的逻辑如下。
假设你保持简单,当使用标准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 是相同的,理论上只要编译器使用基于 System.Runtime 的核心平台,它甚至可以执行编译的 VB 程序集。
PS 2019年5月:他们刚刚宣布移植大部分VB .NET运行时