【踩坑】CS8630 无效的Nullable值: C# 7.3的"Enable"

Nullable引用类型特性自 C# 8 才开始支持,而.NET Framework官方最高仅支持到7.3,详见

首先检查项目中是否真的使用了Nullable引用类型的语法特性(?.object?等),如果已经使用了——

保留语法

由于C# 8.0开始支持相关特性,如果需要保留这种写法,那么只能通过修改项目文件将语言版本<LangVersion>提升为8,在.csproj文件中<PropertyGroup>节点下添加

<LangVersion>8.0</LangVersion>

但该方法不推荐,官方角度来说.NET Framework并不支持到8,尽管能用,但是与CLR相关的一些内容可能不会兼容。

不保留语法

如果你不希望保留Nullable特性,或者你发现项目里根本没有使用,并且发现解决方案下所有项目都抛出这个错误,那么说明解决方案的配置有问题——

在解决方案所在目录下找到Directory.Build.props文件,用文本编辑器打开,找到

<Nullable>Enable</Nullable>

将其删掉或者改为Disable即可。如果不在这个文件里,那么检查csproj项目文件里面有没有类似的内容。

posted @ 2025-07-16 10:22  Oberon  阅读(310)  评论(0)    收藏  举报