【发布时间】:2021-08-05 16:55:42
【问题描述】:
我删除了我的 IsExternalInit 定义,因为我们现在使用的是 .net 5.0:
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<WarningsAsErrors>nullable</WarningsAsErrors>
</PropertyGroup>
但我仍然收到此错误
CS0518 未定义或导入预定义类型“System.Runtime.CompilerServices.IsExternalInit”
在这样的文件中
public sealed record TestDTO
{
public string SomePropert{ get; private init; } = default!; // error occurs here
}
我可以看到这是针对旧框架时的预期行为,但它不应该在我的情况下工作吗?我做错了什么?
【问题讨论】:
-
您是否尝试重建并清除所有临时文件 bin/obj 文件夹?您是否偶然多次声明 targetframework?
-
你是否尝试过“常规”——删除 bin/obj 文件夹,重新启动 VS 并重建。
-
我已经清理了解决方案,删除了执行项目和引用项目中的 bin/obj,还尝试重新启动 VS 并重建
-
您是否有多个项目在这里,但并非所有项目都针对只是 .net 5?
-
另外:在命令行中运行“dotnet --info”在您的项目文件夹中 - 它会告诉您 SDK 是否正在解析(以及:什么版本)
标签: c# visual-studio-2019 .net-5