我正在尝试使用 CMake 3.16.3 为 Visual Studio 2017 生成 C# 项目,但我在设置 C# 语言版本时遇到问题。 即使我在 CMakeLists.txt 文件的顶部这样指定它:
target_compile_options(<MyApp> PRIVATE "/langversion:latest")
或者像这样:
set(CMAKE_CSharp_FLAGS "/langversion:latest")
在 *.csproj 文件中,它始终设置如下:
<Project>
...
<PropertyGroup>
...
<AdditionalOptions>/langversion:latest</AdditionalOptions>
...
<LangVersion>3</LangVersion>
...
</PropertyGroup>
...
</Project>
因此,无论我在那里设置什么值,它始终是版本 3(这是最低版本)。在不指定语言版本的情况下,它设置为默认值,即 latestMajor,Version 7.0。
目前解决这个问题的唯一方法是创建 Directory.Build.props 构建文件夹中的文件。它看起来像这样:
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
</Project>
我是 CMake 的新手,它的文档非常复杂,所以我可能错过了一些步骤。或者这是 CMake 中的一个错误,有人对此问题有更好的解决方案吗?
这是 projects Gitlab page 的链接
最佳答案
这是 CMake 的一个限制,最近才在版本 3.17.0 中修复。 您需要安装 CMake 3.17 版并从命令行生成解决方案。
参见 this issue在 CMake 问题跟踪器中。
关于c# - CMake 没有为 C# 项目设置 LangVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61069290/