Отладка расширений Visual Studio
Я просто пишу расширение VSIX для Visual Studio 2010 и не могу понять, как его отладить.
один очевидный метод заключается в выводе сообщений. Шаблон расширения использует Trace.WriteLine()
. Но где найти его выход?
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 здесь. В противном случае вы можете увидеть точку останова активации, но отладчик никогда не попадет в нее.