Piszę tylko rozszerzenie VSIX dla Visual Studio 2010 i nie mogę dowiedzieć się, jak je debugować.
Jedną z oczywistych metod jest wyprowadzanie wiadomości. Szablon rozszerzenia używa Trace.WriteLine()
. Ale gdzie znaleźć to wyjście?
Odpowiedzi:
Rozszerzenia programu Visual Studio można debugować tak jak każdą inną aplikację. Wystarczy skonfigurować środowisko debugowania, aby uruchomić devenv z załadowanym rozszerzeniem. Spróbuj wykonać następujące czynności
Kliknij przycisk opcji dla Start External Program
. Wskaż plik binarny devenv.exe. Na moim komputerze znajduje się pod adresem
C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe
Jednak na komputerze innym niż x64 można usunąć część „(x86)”.
Następnie ustaw argumenty wiersza poleceń na /rootsuffix Exp
. To informuje program Visual Studio, aby używał eksperymentalnej gałęzi zamiast normalnej gałęzi konfiguracji. Domyślnie rozszerzenia VSIX po zbudowaniu zarejestrują się w gałęzi eksperymentalnej.
Teraz możesz F5 i uruchomi Visual Studio z VSIX jako dostępnym rozszerzeniem.
Zaakceptowana odpowiedź @JaredPar jest technicznie poprawna, ale cierpi z powodu faktu, że musisz ją powtórzyć dla każdego programisty, za każdym razem, gdy otrzymasz nową kopię kodu i za każdym razem, gdy csproj.user
plik zostanie usunięty. Gdy zrobisz to w ten sposób, ustawienia zostaną zapisane w csproj.user
pliku.
Lepszą opcją jest umieszczenie ustawień w csproj
pliku, aby nie zostały utracone. Niestety, Visual Studio nie pozwala na zrobienie tego automatycznie, więc musisz ręcznie dodać ustawienia. Na szczęście ustawienia są takie same dla każdego projektu.
Kliknij prawym przyciskiem myszy i zwolnij projekt, a następnie kliknij ponownie prawym przyciskiem myszy i edytuj csproj
plik projektu. W kodzie XML dodaj następujące elementy do pierwszego PropertyGroup
, na przykład zaraz po TargetFramework
.
<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>
Ma to następujące zalety;
Jak stwierdza @MBulli w komentarzach, jeśli dokonałeś zmian w zaakceptowanej odpowiedzi, usuń *.csproj.user
plik, ponieważ ustawienia w nim zastąpią te, które dodałeś do głównego csproj
pliku.
Metoda OutputWindowHelper.OutputString zapisuje w okienku okna danych wyjściowych „Ogólne” (Ctrl Alt o). Dodałem tę linię w moich odniesieniach .csproj, aby uzyskać to w VS 2013
<Reference Include="Microsoft.VisualStudio.Services.Integration, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
Zobacz także tę odpowiedź .