Отладка расширений Visual Studio


Я просто пишу расширение VSIX для Visual Studio 2010 и не могу понять, как его отладить.

один очевидный метод заключается в выводе сообщений. Шаблон расширения использует Trace.WriteLine(). Но где найти его выход?

4 82

4 ответа:

расширения Visual Studio можно отлаживать, как и любое другое приложение. Вам просто нужно настроить опыт отладки для запуска devenv с загруженным расширением. Попробуйте следующее

  • Правой Кнопкой Мыши на проекте и выберите Свойства
  • перейдите на вкладку "отладка"

нажать на кнопку Start External Program. Направьте его в команду devenv.исполняемые двоичные. На моей машине он расположен по адресу

C:\Program файлы (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe

на машине без x64, хотя вы можете удалить часть " (x86)".

затем установите аргументы командной строки в /rootsuffix Exp. Это говорит Visual Studio использовать экспериментальный улей вместо обычного улья конфигурации. По умолчанию расширения VSIX при построении будут регистрироваться в экспериментальном улье.

теперь вы можете F5, и он начнет Visual Studio с вашим VSIX в качестве доступного расширения.

принятый ответ @JaredPar является технически правильным, но страдает от того, что вам нужно переделать его для каждого разработчика, каждый раз, когда вы получаете новую копию кода, и в любое время удалены. Когда вы делаете это таким образом, настройки сохраняются в папке .

лучший вариант-поместить настройки в csproj файл, так что они не теряются. К сожалению, Visual Studio не позволяет сделать это автоматически, поэтому вам нужно вручную добавить установка. К счастью, настройки одинаковы для любого проекта.

щелкните правой кнопкой мыши и выгрузите проект, затем щелкните правой кнопкой мыши еще раз и отредактируйте csproj файл файл проекта. В xml-файле, добавьте следующий к первому PropertyGroup, например, сразу после TargetFramework.

<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>

это имеет следующие преимущества;

  • он устанавливает его для отладки и выпуска
  • он работает в любой версии Visual Studio вы в настоящее время работает
  • он проверяется в системе управления версиями, поэтому каждый разработчик не должен помнить, как это сделать:)

как говорится в комментариях @MBulli, если вы внесли изменения в принятый ответ, удалите свой *.csproj.user файл, потому что настройки в нем будут переопределять те, которые вы добавили в основной .

на OutputWindowHelper.OutputString метод записывает в область окна вывода "общие" (Ctrl Alt o). Я добавил эту строку в моем .ссылки csproj, чтобы получить это в VS 2013

<Reference Include="Microsoft.VisualStudio.Services.Integration, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

см. Также ответ.

Если вы пытаетесь отладить UnitTestExtension, вы также должны подключить отладчик к vstest.*.exe-процессы, такие как descibed здесь. В противном случае вы можете увидеть точку останова активации, но отладчик никогда не попадет в нее.