【发布时间】:2016-01-20 17:45:00
【问题描述】:
我们有 this announcement 表示 .Net Core 正在重命名为 1.0(令人困惑,但很好,无论如何)。汉塞尔曼在其中陈述
它还不支持 VB 或 F#。
这让我觉得我错过了一些东西。我的逻辑如下。
使用两个简单的 Hello World 应用程序,一个使用 C#,另一个使用 VB。假设您保持简单,在使用标准 MSBuild/.NET 框架进行编译时,您应该得到相同的 IL。我的理解是,你可以让 .Net 核心运行相同的 dll,因为它在那个级别都是 IL。那为什么说它不支持VB呢?除了简单的情况(您可能会引用 VB 特定的东西)之外,它是否不支持它?还是 .Net Framework 与 .NET Core 编译时生成的实际 IL 不同,而且还没有 VB/F# 编译器?
【问题讨论】:
-
可能是因为这些语言具有特定于语言的参考 dll(例如 Microsoft.VisualBasic.dll),它们有自己的不支持核心的参考。
-
@Jeff 是的,但我在问题中提到了这一点 - 你没有 have 在 vb 应用程序中使用
Microsoft.VisualBasic.dll(你可以在 ac 中很好地使用它# 一个)。因此,要么此 dll 尚未移至 .Net Core,但 IL 是相同的,并且 vb-wont-work 并不完全正确,要么实际的 IL 不同。是哪个? -
IL只有一种,.NETCore版本不一样。您认为不需要 Microsoft.VisualBasic.dll 的假设是不准确的,编译器会自动生成使用它的代码。基本的东西,比如需要观察选项比较的字符串比较。 F# 和 FSharp.Core.dll 也差不多