我们宣布 .Net Core正在重命名为1.0(令人困惑,但很好,无论如何).汉塞尔曼说
It doesn't yet support VB or F#.
Run Code Online (Sandbox Code Playgroud)
这让我觉得我错过了什么.我的逻辑如下工作.
在C#中使用两个简单的简单Hello World应用程序,在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是相同的,理论上只要编译器使用基于System.Runtime的Core平台,它甚至可以执行编译后的VB程序集。
PS 2019 年 5 月:他们刚刚宣布移植大部分 VB .NET 运行时