In letzter Zeit schreibe ich recht viele Erweiterungen für Visual Studio. Oder ich befasse mich zumindest viel damit, denn es dauert schon eine ganze Zeit, bis so eine Erweiterung mal auf die Menschheit losgelassen werden kann. Selbst für eine einfache Alpha-Version, die noch gar nicht viel kann. Der Workflow für die Entwicklung einer Erweiterung und auch der dafür notwendige Code sind noch recht starr. Da könnte Microsoft noch einiges vereinfachen.
Während der Entwicklung bin ich auf die Fehlermeldung „The breakpoint will not currently be hit. The source code is different from the original version.“ gestoßen. Im Grunde eine sehr klare Fehlermeldung die besagt, dass Haltepunkte im Code nicht angesprungen werden können, da sich die Code-Versionen in Visual Studio und der kompilierten Extension unterscheiden. Wie es dazu gekommen ist, kann ich nur vermuten. Ich denke, es hat mit der Umbenennen des Projekts zu tun und das dadurch sowohl der alte als auch der neue Code vorhanden waren. Die Klasse, in der die eigentliche Arbeit stattfindet, behielt nämlich den ursprünglichen Namen bei. Dadurch könnte das Problem verursacht worden sein. Wirklich sicher bin ich mir aber nicht.
Ich habe länger gesucht und zahlreiche Tipps von Google, Stack Overflow und Co. ausprobiert. Aber geholfen hat das alles nichts. Beiträge wie dieser hier gibt es im Web viele. Ebenso Tipps und Tricks, Visual Studio wieder zum Anspringen von Breakpoints zu bewegen. Bis ich auf die Idee gekommen bin mal in dem Verzeichnis zu schauen, wo Visual Studio die Daten zu den einzelnen Extensions ablegt. Damit ist ein Pfad ähnlich diesem hier gemeint:
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\<Version>\Extensions\
Wobei der Platzhalter <Version>
gegen die entsprechende Visual Studio auszutauschen ist. In meinem Fall bei Visual Studio 2013 ist das die Version 12.0. Damit ist aber die Hauptinstallation von Visual Studio gemeint. Für die Entwicklung von Erweiterungen wird Visual Studio mit dem Parameter rootsuffix gestartet. Die genaue Syntax lautet im Standardfall /rootsuffix Exp
. Dort befinden sich alle Daten der Erweiterung. Sowohl Assemblies, als auch XML-Dateien und sonstige Dateien, die in Visual Studio so markiert worden sind, dass sie auch bei der VSX-Installation mit ausgeliefert werden.
Nach dem Löschen und dem erneuten Kompilieren der Extension war wieder alles in Ordnung. Darauf hätte ich vielleicht auch früher kommen können, denn dann hätte ich einiges an Zeit und Aufwand eingespart. Aber so ist das nun mal. Vielleicht hilft dieser Beitrag jemand anderes :).
Schreibe einen Kommentar