Migracja starej wtyczki do nowej wersji Visual Studio 2017
17.05.2017 22:17
Tworząc dodatek do Visual Studio zapewne wiele osób będzie uczyło się poprzez analizę kodu istniejących już dodatków (chociażby ze źródeł na GitHubie od MS ). Okazuje się jednak, że projekty pluginów stworzonych pod stare IDE zupełnie nie chcą kompilować się w nowej odsłonie Visual Studio. Jesteśmy zmuszeni do ręcznej migracji takich dodatków. Oto poradnik jak tego dokonać.
Automatyczna aktualizacji (standardowa)
Otwierając projekt, który został stworzony w starym IDE, w nowym Visual Studio 2017 dostaniemy standardowy komunikat o automatycznej aktualizacji.
Nie mamy wyjścia i godzimy się na to. Po chwili projekt jest już gotowy na działanie w nowej wersji IDE. Niestety próba builda zakończy się niepowodzeniem.
W tym momencie musimy sami przejść przez kluczowe elementy projektu, aby zaktualizować ręcznie dodatek.
Nowe paczki z NuGeta
Zaczniemy migrację o pobrania nowych paczek z NuGeta.
Na zakładce aktualizujemy dostępne nowe składniki i restartujemy IDE, jeśli jest to wymagane.
Aktualizacja vsixmanifest
Kolejnym krokiem jest przejrzenie pliku source.extension.vsixmanifest z definicjami wymagań co do wtyczki i docelowej wersji Visual Studio. Zaczniemy od zakładki Install Targets.
W starej wersji widzimy, iż wtyczka ustawiona była na zgodność jedynie z VS 2015. Rozszerzmy zatem kompatybilność na kolejne wersje. Musimy użyć tutaj zakresu, który określa jakie numery wersji będą wspierane. Można podać konkretne numery np. [14.0,15.0], ale w tym przypadku ustawimy zakres otwarty, bez wpisywania górnej granicy: [14.0,). Dodatkowo dodamy kompatybilność dla edycji Community i Enterprise:
W następnej kolejności zaktualizujemy zależność na zakładce Dependecies.
Tu również pozostawimy możliwość instalacji dla przyszłych wersji IDE:
Ostatnia zakładka jest bardzo ważna, gdyż pojawiła się ona dopiero w Visual Studio 2017. Określa ona elementy jakie muszą być zainstalowane, aby nasza wtyczka mogła działać. W tym przypadku dodałem zależność, która określa istnienie edytora IDE co najmniej w wersji 14.
Po tych czynnościach będziemy już w stanie zbuildować dodatek.
Debugowanie
Pomimo tego iż projekt już się buduje, nie będziemy w stanie go debugowac (w przypadku, gdy nie mamy starej wersji Visual Studio).
Problemem jest debuger, który uruchamia sklonowaną instancję Visual Studio. W tym przypadku chce on uruchomić starszą edycję IDE. Zatem ostatnim krokiem zastaje już tylko podmiana ścieżki na nową:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
Dokonamy tego we właściwościach projektu, na zakładce Debug, zaznaczając pole Start external program i podając ścieżkę do nowego IDE (przykład wyżej).
Po tych krokach projekt zbuilduję się i będzie możliwe debugowanie go w nowym oknie IDE:
Przypominam, że dostępna jest już w markecie Visual Studio wczesna wersja wtyczki konkursowej Healthy With VS.
Dodatek dostępny jest w markecie pod adresem: Healthy With VS
.
Zachęcam do pobierania i testowania pierwszej wersji. Liczę również na feedback z waszej strony.
Źródła dostępne są na GitHubie (branch master i POC): https://github.com/djfoxer/healthyWithVS/