"Predefined type 'System.*' is not defined or imported" 错误,Visual Studio Code,Omnisharp。

16
我在几个.NET Core应用程序中遇到了上述错误。我使用的是vs code版本1.18.0,但这个错误早在之前的版本中就出现了。
这个错误会出现在每个.cs文件中的每种数据类型(如字符串,整数,空等)以及类导入中。
所有项目仍然可以正确编译和运行。此外,在另一台工作站上,我在相同的项目中没有遇到这个问题,所以它似乎是一个本地的 Omnisharp / VS Code 或 Windows 问题。
是否有人遇到过这样的问题并成功解决或有任何建议尝试的方法?
我已经重新安装了vs code和omnisharp,但问题仍然存在。
例如错误:预定义类型'System.Object'未定义或未导入[GG]

你的.NET Core版本是什么?你是如何安装它的?dotnet --info命令输出了什么? - omajid
2
我遇到了相同的问题,我的.NET Core版本为2.0.2,在Windows 10上使用VSCode 1.18.0。产品信息: 版本:2.0.2 提交SHA-1哈希:a04b4bf512运行时环境: 操作系统名称:Windows 操作系统版本:10.0.15063 操作系统平台:Windows RID:win10-x64 基本路径:C:\Program Files\dotnet\sdk\2.0.2\Microsoft .NET Core共享框架主机版本:2.0.0 构建:e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d - eka808
4
这里报道了一个问题:https://github.com/OmniSharp/omnisharp-vscode/issues/1855 - VahidN
.NET命令行工具(2.0.2)产品信息: 版本:2.0.2 提交SHA-1哈希:a04b4bf512运行时环境: 操作系统名称:Windows 操作系统版本:10.0.15063 操作系统平台:Windows RID:win10-x64 基本路径:C:\Program Files\dotnet\sdk\2.0.2\Microsoft .NET Core共享框架主机 版本:2.0.0 构建:e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d(第一个条目是.NET Core SDK) - Jurij B
我通过安装程序在微软门户上安装了它,前两个月没有任何问题。同时,我无法确定错误开始出现的确切时间,因为我正在开发一个不包含任何.cs文件的前端应用程序。 - Jurij B
2个回答

6
我找到了解决我的问题的方法(或变通方法):
简短版:我通过卸载Visual Studio 2017 Pro更改了omnisharp msbuild实例。
详细版:几个月前,我安装了VS 2017 Pro来查看其功能,在试用模式下使用了2周,之后几个月忘记了它。
大约一周前,我(无意中:D)打开它并收到通知,我的试用期已过,VS也被锁定。这并不困扰我,因为我没有在使用它。在@VahidN的链接中,我发现omnisharp正在使用已安装的“最本地”的msbuild实例,而在我的情况下,是被锁定的VS 2017 Pro的实例。1+1,我卸载了VS,问题解决了。
我将重新安装VS 2017(Comunity),如果仍然正常工作,我会发布评论。
编辑:我重新安装了VS 2017,一切都运行良好,因此实际解决方案是更新VS 2017,但我之前无法执行此操作,因为它被锁定了。

在我的情况下,使用Mac OSX,我只需要打开Visual Studio安装程序并进行更新。似乎VSCode与Visual Studio的mono和.NET框架版本有所交互。更新后,清理/还原项目,就可以正常运行了。 - netpoetica
非常感谢。我的情况也是一样的。卸载VS 2019社区版解决了问题。对我来说,Azure函数将通过命令“func start”运行。但代码误导了,出现了错误。 - Binesh Nambiar C

4
感谢分享你的解决方案。不幸的是,那个对我并没有起作用。对我有用的是重新安装最新版本的OmniSharp。
以下是从此处复制粘贴的内容:
“该问题的解决方案已经被推到了OmniSharp中。你可以通过将VS Code中的“omnisharp.path”选项设置为“latest”来获取修复程序。这将导致C# for VS Code在启动时下载最新版本的OmniSharp。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接