无效的“可空”值:C# 7.3 的“启用”

dnf*_*dnf 5 c# nullable c#-8.0 nullable-reference-types

我有几个 .NET Standard 项目的解决方案,我想启用 c# 8 并且可以为空,如下所示:

<PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <Nullable>enable</Nullable>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

问题是有些项目编译得很好,有些有错误:

无效的“可空”值:C# 7.3 的“启用”。请使用语言版本“预览”或更高版本

我有 Visual Studio 16.2 Preview 2 和 .NET Core 3 Preview 6。这是预览中的错误还是我做错了什么?

dat*_*ung 49

就我而言,当我将目标框架从 .NET Standard 2.1 更改为 .NET Standard 2.0 时,我在 Visual Studio 2022 中遇到了这个问题。我通过删除<Nullable>enable</Nullable>.csproj 文件重新启动 Visual Studio 解决了我的问题。

原始 .csproj 文件:

<PropertyGroup>
  <TargetFramework>netstandard2.1</TargetFramework>
  <Nullable>enable</Nullable>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

新的 .csproj 文件:

<PropertyGroup>
  <TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)


Avi*_*ish 18

您应该<LangVersion>preview</LangVersion>按照错误消息的提示进行尝试。