Visual Studio Code可以使用混合语言的.NET Core解决方案吗?

时间:2017-08-17 02:30:13

标签: c# f# visual-studio-code .net-core

以下是否有简单的解决方法?或者这是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

我在MainProgram中添加了一个对ClassLibrary的项目引用。

dotnet add reference ..\ClassLibrary\ClassLibrary.fsproj

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

static void Main(string[] args)
{
    ClassLibrary.Say.hello("world.");
}

我可以成功恢复,构建和运行程序。

dotnet restore
dotnet run -p .\MainProgram\MainProgram.csproj

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

  • 当我打开Program.cs时,编辑器会将F#库类型重写为缺失。
  • 当我打开Library.fs时,编辑器会强调所有内容。有趣的是,错误来自C#编译器,而不是F#编译器。
  • Ctrl-Shift-B使用0警告和0错误构建项目。
  • VSCode的“问题”窗口显示12个编译器错误。

enter image description here

enter image description here

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

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

更新

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

  1. C#,1.12.1
  2. Ionide-fsharp,2.33.0
  3. 语言PL / SQL,1.0.4
  4. Mono Debug,0.15.7
  5. XML Tools,1.9.2

1 个答案:

答案 0 :(得分:0)

看起来我们只需要等待this fix

并且,如果您安装了Visual Studio Build Tools 2017,请更新到the latest version and F# compiler workload