2008-09-18 3 views
5

В моем проекте есть как клиентские, так и серверные компоненты в одном файле решения. Обычно у меня есть отладчик, который запускает их вместе при отладке, но часто бывает, когда я запускаю сервер за пределами отладчика, поэтому я могу запускать и останавливать клиента по мере необходимости, когда работаю только на стороне клиента. (это намного быстрее).Могу ли я создать макрос Visual Studio для запуска конкретного проекта в отладчике?

Я пытаюсь сэкономить на том, что вы столкнулись с проблемой в обозревателе решений, чтобы начать отдельные проекты и скорее просто нажмете кнопку на панели инструментов, которая вызывает макрос, который запускает отладчик для отдельных проектов (оставляя «F5», тип отладки только для запуска обоих процессов).

Я пробовал записывать, но на самом деле это не принесло ничего полезного.

До сих пор все, что я сумел сделать это, чтобы найти элемент проекта в обозревателе решений:.

Dim projItem As UIHierarchyItem 

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

(Это основано на свободно, как записи макросов пытался это сделать, я не конечно, если навигационная модель объектного пользовательского интерфейса является правильным подходом или если я буду рассматривать возможность использования объектной модели Solution/Project).

ответ

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# Add-In? – vendettamit 2016-01-28 18:19:41