在 C# 的 CMakeLists.txt 中,如何启用可空引用?

问题描述 投票:0回答:1

在 C# 项目的 CMakeLists.txt 中,我可以为项目设置 LangVersion:

set( CMAKE_CSharp_FLAGS "-langversion:8" )

这最终会出现在生成的 .csproj 文件中:

<LangVersion>8</LangVersion>

我还想设置 Nullable:

set( CMAKE_CSharp_FLAGS "-langversion:8 -nullable" )

我在生成的 .csproj 文件中期望

<Nullable>enabled</Nullable>

我在生成的 .csproj 文件中观察到

<AdditionalOptions>-nullable</AdditionalOptions>

(随后出现有关可为空注释等的 CS9632 警告)

CMake 版本为 3.30.5。

如何在CMakeLists.txt中启用可空引用?

c# visual-studio cmake
1个回答
0
投票

到目前为止,我发现实现这项工作的唯一方法是设置

VS_GLOBAL_Nullable
目标属性:

set_property( TARGET MyTarget PROPERTY VS_GLOBAL_Nullable "enabled" )

感觉有点恶心。应该可以全局设置,但是

set_property( GLOBAL PROPERTY VS_GLOBAL_Nullable "enabled" )
也不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.