【问题标题】:missing "System" reference on ubuntu and .net core 3.0在 ubuntu 和 .net core 3.0 上缺少“系统”参考
【发布时间】:2019-09-25 20:33:36
【问题描述】:
我正在尝试在 Ubuntu 机器上使用 .Net Core 3.0 开发一个简单的 Web 应用程序。
我从这个link 设置了.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?)
screenshot of vs code
【问题讨论】:
标签:
asp.net-core
visual-studio-code
ubuntu-18.04
.net-core-3.0
omnisharp
【解决方案1】:
关于您的问题,omnisharp-vscode(例如3289、3290)GitHub 存储库上有多个未解决的问题。一些解决方法如下:
- 对于 Windows:安装 Visual Studio 2019 Community Edition 或 MsBuild Tools 2019
- 对于 Linux/MacOS:安装 Mono 6.0.0 或更高版本
或者卸载以前版本的 .NET Core。如果您不喜欢这些解决方法,解决此问题的最佳解决方案是暂时安装新的(测试版)OmniSharp 版本。
您可以通过将以下行添加到您的 VS 代码 settings.json 中来安装此构建:
"omnisharp.path": "1.34.4-beta.7"
保存设置后,将安装新版本的omnisharp-vscode with fix。安装后,如果需要,重新启动 IDE。我可以确认该修复程序适用于 Windows。
【解决方案2】:
我在 .net core 2.x 上经常收到类似的消息,我发现您必须在项目文件中添加对 netstandard 的引用才能修复如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
..
</PropertyGroup>
<ItemGroup>
..
</ItemGroup>
<ItemGroup> <Reference Include="netstandard" /> </ItemGroup>
</Project>
【解决方案3】:
在 Mac 上,我尝试删除旧的 dot net 运行时和 sdks,使用omnisharp 的预览版并验证 6.0.0 以上的单声道版本
我还删除了项目 bin 和 obj 目录,重新编译,删除了 nuget 缓存目录并恢复。
然后我在相关帖子中遇到了这个问题:
确认!升级到 Mono 6.4 解决了 Linux 下的问题!
(在 Mono 6.0 下出现问题,因为我以前有过这个版本)
不一定是 6.0....