Я просто пишу расширение VSIX для Visual Studio 2010 и не могу понять, как его отлаживать.
Один из очевидных методов - вывод сообщений. Шаблон расширения использует Trace.WriteLine()
. Но где его вывод?
Ответы:
Расширения Visual Studio можно отлаживать, как и любое другое приложение. Вам просто нужно настроить отладку для запуска devenv с загруженным расширением. Попробуйте следующее
Щелкните переключатель для Start External Program
. Направьте его на двоичный файл devenv.exe. На моей машине он расположен по адресу
C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe
На машинах, отличных от x64, вы можете удалить часть «(x86)».
Затем установите для аргументов командной строки значение /rootsuffix Exp
. Это указывает Visual Studio использовать экспериментальный куст вместо обычного куста конфигурации. По умолчанию расширения VSIX после сборки регистрируются в экспериментальном кусте.
Теперь вы можете нажать F5, и он запустит Visual Studio с вашим VSIX в качестве доступного расширения.
Принятый ответ @JaredPar технически верен, но страдает тем фактом, что вам нужно переделывать его для каждого разработчика, каждый раз, когда вы получаете новую копию кода, и каждый раз, когда csproj.user
файл удаляется. Когда вы это сделаете, настройки сохранятся в csproj.user
файле.
Лучше всего поместить настройки в csproj
файл, чтобы они не потерялись. К сожалению, Visual Studio не позволяет делать это автоматически, поэтому вам нужно вручную добавить настройки. К счастью, настройки одинаковы для любого проекта.
Щелкните правой кнопкой мыши и выгрузите проект, затем щелкните еще раз правой кнопкой мыши и отредактируйте csproj
файл файла проекта. В XML добавьте следующее к первому PropertyGroup
, например, сразу после TargetFramework
.
<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>
Это дает следующие преимущества:
Как заявляет @MBulli в комментариях, если вы внесли изменения в принятый ответ, удалите свой *.csproj.user
файл, потому что настройки в нем переопределят те, которые вы добавили в основной csproj
файл.
Метод 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" />
Также см. Этот ответ .