2013-03-14 148 views
1

我要服務引用添加到使用ENVDTE項目。唯一的方法是通過彈出「添加服務參考」窗口的以下命令:有沒有一種方法來選擇使用ENVDTE項目?

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

但是,此命令僅適用於當前選定的項目。有沒有辦法選擇要添加服務引用的特定項目?

DTE2.SelectedProjects沒有辦法選擇一個項目,它不僅有助於檢索選定的項目。

回答

0

您必須通過解答樹這樣的導航:

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

後您啓動命令。

PathToYourProject是一個 「僞」 的XPath。如果你在一個名爲「解決方案」的解決方案被稱爲「工程」項目workging您的路徑將是:「解決方案\工程」

請務必小心,如果你的項目是一個解決方案文件夾。這有點棘手。你必須擴大解決方案文件夾是這樣的:

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

然後您檢索,並通過這種方式選擇項目:

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

最後,我不知道,但你可能要選擇「服務引用「節點之前啓動該命令。

相關問題