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?
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?
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 wcsproj.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 pierwszegoPropertyGroup
, na przykład zaraz poTargetFramework
.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łównegocsproj
pliku.źródło
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
Zobacz także tę odpowiedź .
źródło
Jeśli spróbujesz debugować UnitTestExtension, powinieneś również dołączyć debugger do procesów vstest. *. Exe, takich jak opisane tutaj . W przeciwnym razie możesz zobaczyć punkt przerwania aktywacji, ale debugger nigdy go nie trafi.
źródło