【问题标题】:C# Predefined type 'System.Object' is not defined or imported未定义或导入 C# 预定义类型“System.Object”
【发布时间】:2019-03-23 23:09:55
【问题描述】:

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

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

如何解决所有这些错误?

【问题讨论】:

  • 在更改项目名称之前一切正常/编译?
  • 您是否在编译时收到此错误?
  • 是的,在更改项目名称之前@CPerkins
  • 清理项目并重建如何?还是关闭VS,手动删除bin/obj文件夹,然后重新打开VS编译?
  • 删除 binobj 并重建应该可以工作

标签: c# .net visual-studio .net-core


【解决方案1】:
  • 关闭VS
  • 删除binobj.vs(可能被隐藏)文件夹
  • 手动运行dotnet restore
  • 在VS中重新打开项目

这可以解决大多数问题。

【讨论】:

  • 清理/重建应该这样做
  • 关闭VS后清理/构建通常对我有用。
【解决方案2】:

我在 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"

错误消失了!

【讨论】:

  • 谢谢!我的问题正是:我的 Visual Studio 已经过时了。升级后vscode不再报错
  • 这也解决了我的问题。很烦人,因为安装时间太长了。
  • 我遇到了同样的问题。阅读此评论和 Microsoft Docs 后,我意识到我的 Visual Studio 旁边运行的是旧版本的 VS Code,编译器很困惑。我关闭了 VS Code 并重新启动了 Visual Studio。现在问题已解决。谢谢。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多