繁体   English   中英

C# 未定义或导入预定义类型“System.Object”

[英]C# Predefined type 'System.Object' is not defined or imported

.NET 核心项目中,我更改了所有项目的名称,而不是重新加载所有项目后,当时许多错误显示大约3225 主要是所有错误都与系统命名空间有关

  • System.Object未定义或导入
  • System.Boolean未定义或导入
  • Task不存在
  • 找不到命名空间ArgumentNullException

如何解决所有这些错误?

  • 关闭VS
  • 删除binobj.vs (可能是隐藏的)文件夹
  • 手动运行dotnet restore
  • 在 VS 中重新打开项目

这可以解决大多数问题。

我在 VS Code 中遇到了这个问题。 在 Windows 终端中, dotnet builddotnet run运行良好,但我在 VS Code 中遇到了错误。 删除/恢复/重新打开答案没有解决它。

似乎这是一个问题,我有一个过时的 Visual Studio 版本混淆了 VS Code 中的 C#/OmniSharp 扩展。

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 Installer 中也找不到。

所以我安装了 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"

错误消失了!

就我而言,错误列表窗口有数百个错误。 但是在重建解决方案时,用于获取消息 Rebuild All Succeeded。 甚至该项目也能够运行。 但是整个代码都是红色的。 只需关闭 Visual Studio 并删除 vs 文件夹即可。

这也可能是由解决方案中项目之间的循环依赖引起的。

错误 MSB4006:在涉及目标“_GenerateRestoreProjectPathWalk”的目标依赖图中存在循环依赖

就像citelao在使用向导创建新的 .NET 6.0 隔离 AZ 函数时,我在 VS 代码中遇到了这个问题。
在 OmniSharp 日志中,我的情况大致相同。

以防万一,为了查看全向日志,您必须打开“输出”面板,然后右键单击下拉菜单: 在此处输入图像描述

我不想安装 VS 2022,因为我的目标是为这个项目使用 VS 代码。 我在这里找到了答案: omnisharp-roslyn #2247

基本上解决方案是在项目根目录中添加omnisharp.json文件,内容如下:

{
  "msbuild": {
  "useBundledOnly": true
  }
}

之后我关闭了 VS Code,删除了binobj文件夹并重新启动了 VS Code。

Gazi 的上述解决方案解决了我的问题,这正是她/他所描述的。 我曾尝试更新 VS,清理和重建解决方案,重新启动 VS。 没有任何帮助。 在解决方案级别删除隐藏的 vs 文件夹就可以了。 希望它可以帮助某人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM