System.Object
未定义或未导入System.Boolean
未定义或未导入Task
不存在- 找不到
ArgumentNullException
命名空间
System.Object
未定义或未导入 System.Boolean
未定义或未导入 Task
不存在ArgumentNullException
命名空间bin
,obj
和.vs
(可能是隐藏的)文件夹dotnet restore
这样大部分问题都可以解决。
using
的问题 - 这是编译器本身出了问题,因此提到了“预定义”类型。使用指令不会影响预定义类型。 - Marc Gravell我在VS Code中遇到了这个问题。在Windows终端中,dotnet build
和 dotnet run
运行正常,但在VS Code中出现错误。删除/还原/重新打开等解决方法都无法修复。
看起来是由于我有一个过时的Visual Studio版本导致C#/OmniSharp扩展在VS Code中混淆了。
OmniSharp日志包含类似以下内容:
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 2 MSBuild instance(s)
1: Visual Studio Enterprise 2019 16.8.30907.101 16.8.3 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin"
2: StandAlone 17.0.0 - "c:\Users\foo\.vscode-insiders\extensions\ms-dotnettools.csharp-1.23.16\.omnisharp\1.37.16\.msbuild\Current\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: Visual Studio Enterprise 2019 16.8.30907.101 16.8.3 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin"
这个 Visual Studio 2019 版本没有安装 .NET 6.0 SDK,并且我在 VS 安装程序中找不到它。
因此,我安装了 Visual Studio 2022 并且一并安装了 .NET 6.0 SDK。现在我的日志看起来像这样:
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 3 MSBuild instance(s)
1: Visual Studio Enterprise 2022 17.0.31912.275 17.0.0 - "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin"
2: Visual Studio Enterprise 2019 16.8.30907.101 16.8.3 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin"
3: StandAlone 17.0.0 - "c:\Users\foo\.vscode-insiders\extensions\ms-dotnettools.csharp-1.23.16\.omnisharp\1.37.16\.msbuild\Current\Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: Visual Studio Enterprise 2022 17.0.31912.275 17.0.0 - "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin"
错误已经消失了!
免责声明:我在微软工作。
在我的情况下,错误列表窗口显示了数百个错误。但是当重新构建解决方案时,通常会收到“重建全部成功”的消息。甚至项目能够运行。但整个代码都是红色的。 只需关闭Visual Studio并删除vs文件夹即可解决问题。
Gazi的解决方案解决了我的问题,正如她/他所描述的那样。我尝试过更新Visual Studio、清理和重新构建解决方案、重启Visual Studio等方法,但都没有帮助。在解决方案级别删除隐藏的vs文件夹可以解决问题。希望对某些人有所帮助!
就像citelao一样,我在使用向导创建新的.NET 6.0隔离AZ函数时,在VS代码中遇到了这个问题。
在OmniSharp日志中,我遇到了类似的问题。
为了查看omni sharp日志,您需要打开“输出”面板,然后在右侧单击下拉菜单:
我不想安装VS 2022,因为我的目标是在VS代码中为此项目工作。我在这里找到了答案:omnisharp-roslyn #2247
基本上解决方案是在项目根目录中添加omnisharp.json文件,其内容如下:
{
"msbuild": {
"useBundledOnly": true
}
}
然后我关闭了VS Code,删除了bin和obj文件夹,然后重新启动了VS Code。
对我来说,这个错误信息
'System.Object' 未定义或未导入
是由于IDE在一个 .csproj 文件中默默地添加了一个 .dll 文件的额外引用。
删除这个不必要的引用后,错误消失了。
我尝试了所有建议的解决方案,但都没有起作用。甚至从这里https://github.com/OmniSharp/omnisharp-roslyn/issues/1094#issuecomment-907733500添加omnisharp.json也不行。
以下是对我有效的方法。首先,我的VS Code正在运行最新版本,我认为整个问题是由于OmniSharp选择了独立版本的MSBUILD引起的,而在我的情况下是16.10.1。在VS Code设置中搜索Omnisharp并找到设置Omnisharp:使用现代网络,然后选择该选项。弹出重启OmniSharp服务器的提示,只需选择即可更新我的OmniSharp设置以使用17.5.1。
希望这可以帮助你!
bin
和obj
文件夹后重新构建即可。 - Nishan