适用于 VS2022 的 VSIX 扩展:获取基于 CMake 的项目的活动配置

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

我目前正在为 Visual Studio 2022 编写 VSIX 扩展。我们有一个基于 CMake 的项目,我想从 VSIX 中访问此 CMake 项目的当前配置名称。我的第一次尝试是沿着以下路线访问此类信息:

ServiceProvider s = ServiceProvider.GlobalProvider;
DTE dte = (DTE)s.GetService(typeof(DTE));
Projects projs = dte.Solution.Projects;
foreach (Project i in projs)
{
   Debug.WriteLine(i.ConfigurationManager.ActiveConfiguration);
}

此代码对于我们的项目失败了。因为(我后来了解到)基于 CMake 的项目具有类型

DteMiscProject
,但在运行时没有
ConfigurationManager
属性。

那么如何从 VSIX 项目中访问打开的 CMake Projekt 的当前活动配置呢?还可能吗?

cmake visual-studio-2022 vsix
1个回答
2
投票

简而言之:Visual Studio 中的 CMake 项目对文件进行操作,因此传统的 API 都无法用于获取有关解决方案/项目的信息。相反,您只需打开 .vs/ProjectSettings.json 并从那里解析活动配置的 name (并且仅名称)。该文件根据 VS GUI 中选择的配置进行更新。其余的配置信息应该在 CMakePresets.json 中的该名称下(字段 displayName)找到

我为此苦苦挣扎了一段时间,尝试了在谷歌上找到的所有可能的方法,然后偶然发现了答案:https://github.com/SonarSource/sonarlint-visualstudio/issues/2508

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