Antworten:
Visual Studio-Erweiterungen können wie jede andere Anwendung debuggt werden. Sie müssen nur die Debug-Erfahrung einrichten, um devenv mit der geladenen Erweiterung zu starten. Versuche Folgendes
Klicken Sie auf das Optionsfeld für Start External Program
. Zeigen Sie auf die Binärdatei devenv.exe. Auf meinem Computer befindet es sich bei
C: \ Programme (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe
Auf einem Nicht-x64-Computer können Sie jedoch den Teil "(x86)" entfernen.
Setzen Sie dann die Befehlszeilenargumente auf /rootsuffix Exp
. Dadurch wird Visual Studio angewiesen, die experimentelle Struktur anstelle der normalen Konfigurationsstruktur zu verwenden. Standardmäßig registrieren sich VSIX-Erweiterungen beim Erstellen im experimentellen Hive.
Jetzt können Sie F5 und es wird Visual Studio mit Ihrem VSIX als verfügbare Erweiterung starten.
Die von @JaredPar akzeptierte Antwort ist technisch korrekt, leidet jedoch unter der Tatsache, dass Sie sie für jeden Entwickler wiederholen müssen, jedes Mal, wenn Sie eine neue Kopie des Codes erhalten, und jedes Mal, wenn die csproj.user
Datei gelöscht wird. Wenn Sie dies auf diese Weise tun, werden die Einstellungen in der csproj.user
Datei gespeichert.
Eine bessere Option ist es, die Einstellungen in die csproj
Datei aufzunehmen, damit sie nicht verloren gehen. Leider können Sie dies in Visual Studio nicht automatisch tun, sodass Sie die Einstellungen manuell hinzufügen müssen. Glücklicherweise sind die Einstellungen für jedes Projekt gleich.
Klicken Sie mit der rechten Maustaste und entladen Sie das Projekt. Klicken Sie dann erneut mit der rechten Maustaste und bearbeiten Sie die csproj
Projektdatei. Fügen Sie im XML Folgendes zum ersten hinzu PropertyGroup
, z. B. direkt danach TargetFramework
.
<StartAction>Program</StartAction>
<StartProgram>$(DevEnvDir)\devenv.exe</StartProgram>
<StartArguments>/rootsuffix Exp</StartArguments>
Dies hat die folgenden Vorteile:
Wie @MBulli in den Kommentaren feststellt, löschen Sie Ihre *.csproj.user
Datei , wenn Sie die Änderungen in der akzeptierten Antwort vorgenommen haben, da die darin enthaltenen Einstellungen diejenigen überschreiben, die Sie der Hauptdatei hinzugefügt haben csproj
.
Die OutputWindowHelper.OutputString- Methode schreibt in den Ausgabefensterbereich "Allgemein" (Strg + Alt). Ich habe diese Zeile in meine .csproj-Referenzen eingefügt, um dies in VS 2013 zu erhalten
<Reference Include="Microsoft.VisualStudio.Services.Integration, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
Siehe auch diese Antwort .
Wenn Sie versuchen, eine UnitTestExtension zu debuggen, sollten Sie den Debugger auch an die vstest. *. Exe-Prozesse anhängen, wie hier beschrieben . Andernfalls wird möglicherweise der Haltepunkt für die Aktivierung angezeigt, der Debugger wird ihn jedoch niemals erreichen.