预定义类型“type”未定义或未导入
注释
此错误的解决方法取决于您是否使用现代 SDK 样式项目(以 .csproj 开头的文件)或旧项目格式。 SDK 样式的项目通过 <TargetFramework> 属性自动管理运行时引用。
此问题的主要原因是项目无法访问 .NET 运行时库中的预定义类型。 在新式 SDK 样式项目中,这通常是由于规范不正确或缺失 <TargetFramework> 。 在旧项目中,此问题是由不导入 mscorlib.dll(定义整个 System 命名空间)引起的。 这可能是由以下任一原因引起的:
注释
此警告仅在显式 生成 或 重新生成 作业期间报告。 在 IDE 中键入期间不会将它显示为 IntelliSense 诊断的一部分。 这意味着,如果通过使用该字段或删除字段来修复警告,则警告可能会保留在错误列表中,直到您再次编译或重新编译项目。
已指定命令行编译器中的 NoStandardLib 选项。 NoStandardLib 选项阻止导入 mscorlib.dll。 如果要定义或创建用户特定的系统命名空间,请使用此选项。
引用了错误的 mscorlib.dll。
存在损坏的 Visual Studio .NET 或 .NET Framework 公共语言运行时安装。
早期安装中与最新安装不兼容的剩余组件仍然存在。
若要解决此问题,请执行下列操作之一:
不要从命令行编译器中指定 /nostdlib 选项。
对于现代 SDK 风格的项目,请确保项目面向正确的 .NET 运行时。 在
.csproj文件中,验证<TargetFramework>属性指定了预期的运行时。<PropertyGroup> <TargetFramework>net8.0</TargetFramework> </PropertyGroup>对于多目标项目,请使用
<TargetFrameworks>(plural):<PropertyGroup> <TargetFrameworks>net8.0;net48</TargetFrameworks> </PropertyGroup>对于旧项目格式,请确保项目引用正确的 mscorlib.dll。
重新安装 .NET Framework 公共语言运行时(如果前面的解决方案无法解决问题)。
在 Visual Studio 中重新加载项目。
关闭 Visual Studio,从项目目录中删除
obj文件夹bin,然后重新打开 Visual Studio 并重新生成项目。