在使用CMake生成项目时,如何为C#项目设置语言版本?

Mic*_*ley 4 c# cmake

CMake 3.8版支持生成Visual Studio C#项目.默认情况下,它将.csproj文件中的语言版本("LangVersion")设置为版本3.我需要更改为更新的语言版本,例如版本6.

如何覆盖CMakeLists.txt文件中的语言版本?

Mue*_*ito 6

您可以将其设置为目标上的编译标志:

project(MyProject CSharp)
add_executable(MyExe main.cs)
target_compile_options(MyExe PRIVATE "/langversion:6")
Run Code Online (Sandbox Code Playgroud)

或者,您可以设置全局变量,以将其应用于所有未来目标:

set(CMAKE_CSharp_FLAGS "/langversion:6")
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案不适用于 cmake 3.14 和 VS2019。CMake 将值“lanversion”写入 csproj 文件中的元素 <AdditionalOptions> </AdditionalOptions>。但 VS 预计它会在 <LangVersion></LangVersion> 中。 (2认同)