我正在开发一个小型Visual Studio扩展,它基于解决方案中的项目是否设置为在活动构建配置中构建来操作项目。我遇到的问题是我无法确定这些项目是哪些。
我已经实现了
我的实现如下:
我需要做的是弄清楚如何在函数开始时填充HashSet(用
我已经实现了
IVsUpdateSolutionEvents
,其中我实现了OnActiveProjectCfgChange
。当我更改配置时,我可以让Visual Studio进入代码块,并且我已经能够完成许多我想要做的事情,但是如果不能确定在活动配置中应该构建哪些项目,我就无法继续下去。我的实现如下:
public int OnActiveProjectCfgChange(IVsHierarchy pIVsHierarchy)
{
var activeProjects = new HashSet<string>(); // TODO: Get projects in active configuration
foreach (Project project in _dte.Solution.Projects)
{
if (project.Kind != "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" // C#
&& project.Kind != "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}" // VB
&& project.Kind != "{13B7A3EE-4614-11D3-9BC7-00C04F79DE25}" // VSA
)
continue;
IVsHierarchy projectHierarchy;
_solutionService.GetProjectOfUniqueName(project.UniqueName, out projectHierarchy);
if (activeProjects.Contains(project.UniqueName))
{
// Project is to be built
}
else
{
// Project is not to be built
}
return VSConstants.S_OK;
}
}
我需要做的是弄清楚如何在函数开始时填充HashSet(用
TODO
标记)。我已经进行了搜索,但没有找到所需内容。有人有任何参考资料或示例代码可以帮助我前进吗?