微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 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的Problems窗口显示12个编译器错误.

enter image description here

enter image description here

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

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

更新

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

> C#,1.12.1
> Ionide-fsharp,2.33.0
>语言PL / sql,1.0.4
>单声道调试,0.15.7
> XML工具,1.9.2

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐