gpt4 book ai didi

c# - 有没有办法使用 ENVDTE 选择项目?

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:23 25 4
gpt4 key购买 nike

我想使用 ENVDTE 添加对项目的服务引用。唯一的方法是通过以下命令弹出添加服务引用窗口:

_applicationObject.ExecuteCommand("Project.AddServiceReference", string.Empty);

但此命令仅适用于当前选定的项目。有没有办法选择要添加服务引用的特定项目?

DTE2.SelectedProjects 无法选择项目,它只能帮助检索选定的项目。

最佳答案

您必须像这样浏览解决方案树:

var se = _applicationObject.ToolWindows.SolutionExplorer;  
var proj = se.GetItem("PathToYourProject");
proj.Select(vsUISelectionType.vsUISelectionTypeSelect);

启动命令后。

PathToYourProject 是一个“伪”XPath。如果您在名为“Solution”的解决方案中从事名为“Project”的项目,您的路径将为:“Solution\Project”

请注意您的项目是否位于解决方案文件夹中。这有点棘手。您必须像这样扩展解决方案文件夹:

var solutionFolder = se.GetItem("PathToYourSolutionFolder");
if (!solutionFolder .UIHierarchyItems.Expanded)
{
solutionFolder .UIHierarchyItems.Expanded = true;
}

然后您通过这种方式检索并选择您的项目:

var proj = solutionFolder .UIHierarchyItems.Item("ProjectName");
proj.Select(vsUISelectionType.vsUISelectionTypeSelect);

最后,我不确定,但您可能必须在启动命令之前选择项目的“服务引用”节点。

关于c# - 有没有办法使用 ENVDTE 选择项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15402294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com