В Visual Studio как сделать конкретное окно открытым во время сборки? - PullRequest
2 голосов
/ 29 июня 2009

Я недавно стал поклонником надстройки VSBuildStatus *1002* Visual Studio, которая показывает статус вашей сборки в хорошем графическом виде. Это гораздо более информативно, чем текущий индикатор выполнения или окно «Вывод». Тем не менее, я не могу найти простой способ заставить его всплыть во время сборки, а затем спрятать себя, когда закончите, что похоже на текущий параметр в визуальной студии «Показать окно вывода при запуске сборки».

Я видел несколько ссылок на создание макросов Visual Studio, которые могут искать события сборки, но мой текущий опыт работы с макросами VS заключается в том, что они медленные и только в VB. Я не против пойти по этому пути, если это единственный путь, но я решил сначала спросить улей.

Спасибо!

Jason

Ответы [ 3 ]

3 голосов
/ 29 июня 2009

Не так сложно подключиться к событию окружающей среды:

1) Откройте IDE макроса (меню «Инструменты» -> «Макросы»)
2) Откройте модуль «EnvironmentEvents» в проекте «MyMacros»
3) Добавьте следующий код после автоматически сгенерированного кода:

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
  DTE.Windows.Item("{43CD29AA-0CA4-4F1C-8265-219788EF4908}").Activate() 'Build Status
End Sub

Вы можете закрыть окно, щелкнув в любом месте за его пределами.
Вы также увидите, что это очень быстро ...

Кстати, спасибо за дополнение, я не знал об этом, и это действительно очень полезно; -)

2 голосов
/ 29 июня 2009

Как насчет макроса клавиатуры? Я думаю, что он все еще генерирует макрос vb в фоновом режиме, но я использовал много, которые не медленные.

http://www.madprops.org/blog/quick-visual-studio-keyboard-macros/

Вы можете начать запись, открыть нужное окно, Ctrl-shift-b, остановить запись и т. Д.

1 голос
/ 30 июня 2009

Используя помощь Жюльена в редакторе Macro IDE, этот код работал в моей среде:

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
  DTE.ExecuteCommand("VSBuildStatusAddin.Connect.VSBuildStatusAddin")
End Sub

Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
    DTE.Windows.Item("{43CD29AA-0CA4-4F1C-8265-219788EF4908}").Close()
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...