Visual Studio Code是否可以与混合语言.NET Core解决方案一起使用?

Wal*_*lly 5 c# f# .net-core visual-studio-code

是否有以下简单的解决方法?还是这是VSCode和/或特定于语言的扩展中的错误?

我创建了两个项目和一个类似的解决方案:

dotnet new library -lang F# -o .\ClassLibrary
dotnet new console -lang C# -o .\MainProgram
dotnet new sln
dotnet sln add .\ClassLibrary\ClassLibrary.fsproj
dotnet sln add .\MainProgram\MainProgram.csproj
Run Code Online (Sandbox Code Playgroud)

我从MainProgram中添加了对ClassLibrary的项目引用。

dotnet add reference ..\ClassLibrary\ClassLibrary.fsproj
Run Code Online (Sandbox Code Playgroud)

我更新了Program.cs以调用ClassLibrary。

static void Main(string[] args)
{
    ClassLibrary.Say.hello("world.");
}
Run Code Online (Sandbox Code Playgroud)

我可以成功还原,构建和运行该程序。

dotnet restore
dotnet run -p .\MainProgram\MainProgram.csproj
Run Code Online (Sandbox Code Playgroud)

问题是当我在Visual Studio Code中打开解决方案文件夹时。

  • 当我打开Program.cs时,编辑器将F#库类型缺少的红色下划线标出。
  • 当我打开Library.fs时,编辑器几乎用红色强调了所有内容。有趣的是,这些错误来自C#编译器,而不是F#编译器。
  • Ctrl-Shift-B生成带有0个警告和0个错误的项目。
  • VSCode的“问题”窗口显示12个编译器错误。

在此处输入图片说明

在此处输入图片说明

我也尝试过单独打开项目文件夹。

  • 如果在F#库项目中打开VS Code,则Intellisense可以工作。
  • 如果我在C#控制台项目中打开VS Code,则编辑器仍无法识别F#库中的类型。

更新资料

我有VS Code版本1.15.1,安装了五个扩展。

  1. C#,1.12.1
  2. 离子离子锐化,2.33.0
  3. 语言PL / SQL,1.0.4
  4. 单声道调试,0.15.7
  5. XML工具,1.9.2

Wal*_*lly 1

看来我们只需要等待这个修复即可。

而且,如果您安装了 Visual Studio Build Tools 2017,请更新到最新版本和 F# 编译器工作负载