未定义或导入 C# 预定义类型“System.Object”
Posted
技术标签:
【中文标题】未定义或导入 C# 预定义类型“System.Object”【英文标题】:C# Predefined type 'System.Object' is not defined or imported 【发布时间】:2019-03-23 23:09:55 【问题描述】:在 .NET core 项目中,我更改了所有项目的名称,而不是在重新加载所有项目后显示大约 3225 的许多错误。主要是所有错误都与系统命名空间有关,如
System.Object
未定义或导入
System.Boolean
未定义或导入
Task
不存在
找不到命名空间ArgumentNullException
如何解决所有这些错误?
【问题讨论】:
在更改项目名称之前一切正常/编译? 您是否在编译时收到此错误? 是的,在更改项目名称之前@CPerkins 清理项目并重建如何?还是关闭VS,手动删除bin/obj文件夹,然后重新打开VS编译? 删除bin
和 obj
并重建应该可以工作
【参考方案1】:
关闭VS
删除bin
、obj
和.vs
(可能被隐藏)文件夹
手动运行dotnet restore
在VS中重新打开项目
这可以解决大多数问题。
【讨论】:
清理/重建应该这样做 关闭VS后清理/构建通常对我有用。【参考方案2】:我在 VS Code 中遇到了这个问题。在 Windows 终端中,dotnet build
和 dotnet 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”的目标依赖图中存在循环依赖
【讨论】:
以上是关于未定义或导入 C# 预定义类型“System.Object”的主要内容,如果未能解决你的问题,请参考以下文章
未定义或导入预定义类型“System.ValueTuple´2”
预定义类型“System.Object”未定义或导入.net 4.6
未定义或导入预定义类型'system.datatype'(所有数据类型)