在 CMake 中导入的外部 msproject 不会生成

External msproject, imported in CMake, would not build

本文关键字:msproject 外部 CMake 导入      更新时间:2023-10-16

我有一个基于 CMake 的 C++ 项目,最近我将现有的 C# 程序包含在其中。

这是CMake代码:

include_external_msproject(MarkTrainingSet MarkTrainingSet.csproj
                        GUID 77A5B8C9-998E-4D0E-A444-6AD14FB0DC37
                        PLATFORM AnyCPU)

.csproj文件是由同一个Visual Studio 2013生成的,就像构建我的C++项目一样。GUID 值和AnyCPU平台是该文件中的值。

我的问题是,当我向Visual Studio发出Build solution命令时,没有构建此C#项目。我必须转到解决方案属性(右键单击解决方案资源管理器中的解决方案),然后转到配置属性 -> 配置,然后手动选中与我的 MarkTrainingSet 项目对应的行Build复选框。

如果 CMake 重新生成解决方案,我必须回忆起该复选框并重做该过程。

关于include_external_msproject的文档非常不完整。

我应该怎么做才能使这个 C# 项目始终自动生成?

我上次看的时候,CMake 对 include_external_msproject() 的暗示仅限于 C/C++ 项目。

您可能会发现此缺陷报告值得一看,尽管它看起来很陈旧。 http://www.cmake.org/Bug/view.php?id=9742...(另见 http://marc.info/?l=cmake&m=133319401303885)

我无法了解这些补丁是否包含在 CMake 中,但缺陷仍然存在。

通常语法如下所示:

include_external_msproject(projectname folder/projectname.csproj PLATFORM AnyCPU)

似乎适用于包含 vs2019 的 cmake。