缺少 Ubuntu 和 .NET Core 3.0 上的"System"参考



我正在尝试在Ubuntu机器上使用.Net Core 3.0开发一个简单的Web应用程序。 我从此链接设置了.Net Core SDK和运行时。我设置 VS Code,然后使用以下命令创建一个项目dotnet new webapp -o RazorPagesMovie code -r RazorPagesMovie

我构建了这个项目,它正在工作。但在 VS Code 中,它显示以下错误:

The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) 

VS 代码的屏幕截图

关于您的问题,omnisharp-vscode(例如 3289、3290(GitHub 存储库上有多个未解决的问题。可以使用一些解决方法,如下所示:

  • 对于Windows:安装Visual Studio 2019社区版或MsBuild Tools 2019
  • 对于 Linux/MacOS:安装 Mono 6.0.0 或更高版本

或者卸载以前版本的 .NET Core。如果您不喜欢这些解决方法,解决此问题的最佳解决方案是暂时安装新的(测试版(OmniSharp 版本。

可以通过将以下行添加到 VS Codesettings.json中来安装此版本:

"omnisharp.path": "1.34.4-beta.7"  

保存设置后,将安装带有修复的 omnisharp-vscode 的新版本。安装后,如果需要,请重新启动 IDE。我可以确认该修复程序适用于 Windows。

我经常在 .net core 2.x 上收到类似的消息,我发现您必须将对 netstandard 的引用添加到项目文件中才能修复,如下所示:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
..
</PropertyGroup>
<ItemGroup>
..
</ItemGroup>
<ItemGroup> <Reference Include="netstandard" /> </ItemGroup>
</Project>

在Mac上,我尝试删除旧的dot net运行时和sdk,使用omnisharp的预览版本并验证6.0.0以上的单声道版本 我还删除了项目 bin 和 obj 目录,重新编译,删除了 nuget 缓存目录并恢复。

然后我在相关帖子中遇到了这个: 啪!升级到 Mono 6.4 解决了 Linux 下的问题! (在Mono 6.0下出现问题,因为我以前有过这个版本( 不一定是6.0....

最新更新