2008-09-18 32 views
5

我的項目將客戶端和服務器組件都放在同一個解決方案文件中。我通常會將調試器設置爲在調試時將它們一起啓動,但通常情況下,我會在調試器外啓動服務器,以便在客戶端工作時根據需要啓動和停止客戶端。 (這要快得多)。我可以創建一個Visual Studio宏來在調試器中啓動一個特定的項目嗎?

我試圖拯救自己在解決方案資源管理器中徘徊以啓動單個項目的麻煩,並且寧願只在工具欄上按一個按鈕,調用啓動單個項目的調試器的宏(同時離開「F5」單獨鍵入調試以啓動兩個進程)。

我試圖記錄,但並沒有真正產生任何有用的東西。

到目前爲止,所有我能夠做到的是定位在Solution Explorer中的項目項:

Dim projItem As UIHierarchyItem 

projItem = DTE.ToolWindows.SolutionExplorer.GetItem("SolutionName\ProjectFolder\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect) 

(這是鬆散的基礎上宏錄製如何試圖做到這一點我不是當然,如果導航UI對象模型是正確的方法,或者我應該考慮通過解決方案/項目對象模型來代替)。

回答

6

好的。這似乎從(所有?)上下文所提供的解決方案最UI工作裝:

Sub DebugTheServer() 
    DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate() 
    DTE.ActiveWindow.Object.GetItem("Solution\ServerFolder\ServerProject").Select(vsUISelectionType.vsUISelectionTypeSelect) 
    DTE.Windows.Item(Constants.vsWindowKindOutput).Activate() 
    DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.Debug.Startnewinstance") 
End Sub 
0

從C#加載項,對我下面的工作:

Dte.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate(); 
Dte.ToolWindows.SolutionExplorer.GetItem("SolutionName\\SolutionFolderName\\ProjectName").Select(vsUISelectionType.vsUISelectionTypeSelect); 
+0

其中C#加載? – vendettamit 2016-01-28 18:19:41

相關問題