Aktualizowanie rozszerzenia programu Visual Studio dla programu Visual Studio 2022

Ważne

Porady zawarte w tym artykule umożliwiają deweloperom migrowanie rozszerzeń, które wymagają istotnych zmian w pracy zarówno w programach Visual Studio 2019, jak i Visual Studio 2022. W takich przypadkach zalecamy posiadanie dwóch projektów VSIX i kompilacji warunkowej.

Wiele rozszerzeń będzie działać zarówno w programach Visual Studio 2019, jak i Visual Studio 2022 z niewielkimi zmianami, które nie będą wymagały wykonania porad dotyczących modernizacji rozszerzenia w tym artykule. Wypróbuj rozszerzenie w programie Visual Studio 2022 i oceń, jaka opcja jest najlepsza dla rozszerzenia.

Program Visual Studio 2022 jest aplikacją 64-bitową i wprowadza pewne istotne zmiany w zestawie Visual Studio SDK. W tym artykule przedstawiono kroki wymagane do pracy z rozszerzeniem w bieżącej wersji zapoznawczej programu Visual Studio 2022. Rozszerzenie może być gotowe do zainstalowania przez użytkowników, zanim program Visual Studio 2022 osiągnie ogólną dostępność.

Instalowanie programu Visual Studio i kompilowanie rozszerzeń

Zainstaluj program Visual Studio 2022 z programu Visual Studio 2022 do pobrania.

Rozszerzenia napisane w języku .NET

Zestaw Visual Studio SDK przeznaczony dla programu Visual Studio 2022 dla rozszerzeń zarządzanych jest wyłącznie w programie NuGet:

  • Metapakiet Microsoft.VisualStudio.Sdk (wersja 17.x) zawiera większość lub wszystkie potrzebne zestawy referencyjne.
  • Pakiet Microsoft.VSSDK.BuildTools (wersje 17.x) powinien odwoływać się z projektu VSIX, aby mógł utworzyć zgodny z programem Visual Studio 2022 VSIX.

Nawet jeśli nie odwołujesz się do żadnych zmian powodujących niezgodność, rozszerzenia muszą być kompilowane przy użyciu platformy Any CPU lub x64 . Platforma x86 jest niezgodna z procesem 64-bitowym w programie Visual Studio 2022.

Rozszerzenia napisane w języku C++

Zestaw Visual Studio SDK dla rozszerzeń skompilowanych za pomocą języka C++ jest dostępny z zainstalowanym zestawem Visual Studio SDK, jak zwykle.

Nawet jeśli nie odwołujesz się do żadnych zmian powodujących niezgodność, rozszerzenia muszą być kompilowane specjalnie z zestawem VISUAL Studio 2022 SDK i dla amd64.

Rozszerzenia z uruchomionym kodem

Rozszerzenia z uruchomionym kodem muszą być kompilowane specjalnie dla programu Visual Studio 2022. Program Visual Studio 2022 nie załaduje żadnego rozszerzenia przeznaczonego dla starszej wersji programu Visual Studio.

Dowiedz się, jak migrować rozszerzenia dla wcześniejszych wersji programu Visual Studio do programu Visual Studio 2022:

  1. Modernizuj projekty.
  2. Refaktoryzacja kodu źródłowego w udostępnionym projekcie w celu umożliwienia kierowania do programu Visual Studio 2022 i starszych wersji.
  3. Dodaj docelowy projekt VSIX programu Visual Studio 2022 i tabelę ponownego mapowania pakietu/zestawu.
  4. Wprowadź niezbędne korekty kodu.
  5. Przetestuj rozszerzenie programu Visual Studio 2022.
  6. Opublikuj rozszerzenie programu Visual Studio 2022.

Rozszerzenia bez uruchamiania kodu

Rozszerzenia, które nie zawierają żadnego uruchomionego kodu (na przykład szablony projektów lub elementów), niewymagane do wykonania powyższych kroków, w tym produkcji dwóch odrębnych vsIX.

Zamiast tego zmodyfikuj jeden plik VSIX, aby source.extension.vsixmanifest jego plik zadeklarował dwa cele instalacji:

<Installation>
   <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[15.0,17.0)">
      <ProductArchitecture>x86</ProductArchitecture>
   </InstallationTarget>
   <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
      <ProductArchitecture>amd64</ProductArchitecture>
   </InstallationTarget>
</Installation>

Kroki opisane w tym artykule można pominąć przy użyciu projektów udostępnionych i wielu vsIX. Możesz kontynuować testowanie.

Uwaga

Jeśli tworzysz nowe rozszerzenie programu Visual Studio przy użyciu programu Visual Studio 2022 i chcesz również kierować program Visual Studio 2019 lub starszą wersję, zapoznaj się z tym przewodnikiem.

zadania programu MSBuild

Jeśli tworzysz zadania programu MSBuild, pamiętaj, że w programie Visual Studio 2022 prawdopodobnie zostaną one załadowane w 64-bitowym procesie MSBuild.exe. Jeśli zadanie wymaga uruchomienia 32-bitowego procesu, zobacz Konfigurowanie obiektów docelowych i zadań w celu upewnienia się, że program MSBuild ładuje zadanie w procesie 32-bitowym.

Modernizowanie projektu VSIX

Przed dodaniem obsługi programu Visual Studio 2022 do rozszerzenia zdecydowanie zalecamy wyczyszczenie i modernizację istniejącego projektu:

  1. Migrowanie z pliku packages.config do PackageReference.

  2. Zastąp wszystkie bezpośrednie odwołania do zestawu SDK programu Visual Studio elementami PackageReference :

    -<Reference Include="Microsoft.VisualStudio.OLE.Interop" />
    +<PackageReference Include="Microsoft.VisualStudio.OLE.Interop" Version="..." />
    

    Napiwek

    Wiele odwołań do zestawów można zastąpić tylko jednymPackageReference wystąpieniem metapakietów:

    -<Reference Include="Microsoft.VisualStudio.OLE.Interop" />
    -<Reference Include="Microsoft.VisualStudio.Interop" />
    -<Reference Include="Microsoft.VisualStudio.Interop.8.0" />
    +<PackageReference Include="Microsoft.VisualStudio.Sdk" Version="..." />
    

    Pamiętaj, aby wybrać wersje pakietów, które są zgodne z minimalną wersją programu Visual Studio, której dotyczysz.

Niektóre zestawy, które nie są unikatowe dla zestawu Visual Studio SDK (na przykład Newtonsoft.Json.dll), mogły zostać wykryte za pomocą prostego <Reference Include="Newtonsoft.Json" /> odwołania przed programem Visual Studio 2022. Jednak w programie Visual Studio 2022 zamiast tego wymagają odwołania do pakietu. Przyczyną jest to, że niektóre katalogi środowiska uruchomieniowego programu Visual Studio i zestawu SDK zostały usunięte z domyślnej ścieżki wyszukiwania zestawów w programie MSBuild.

W przypadku przełączania się z bezpośrednich odwołań zestawów do odwołań pakietów NuGet można pobrać dodatkowe odwołania do zestawów i pakiety analizatorów, ponieważ pakiet NuGet automatycznie instaluje przejściowe zamknięcie zależności. Zazwyczaj jest to ok, ale może to spowodować dodatkowe ostrzeżenia podczas kompilacji. Przepracuj te ostrzeżenia i rozwiąż dowolną liczbę. Rozważ użycie regionów w kodzie #pragma warning disable <id> , aby pominąć ostrzeżenia, których nie można rozpoznać.

Używanie udostępnionych projektów do obsługi wielu elementów docelowych

Udostępnione projekty to typ projektu wprowadzony w programie Visual Studio 2015. Udostępnione projekty w programie Visual Studio umożliwiają udostępnianie plików kodu źródłowego między wieloma projektami i kompilowanie w inny sposób przy użyciu symboli kompilacji warunkowej i unikatowych zestawów odwołań.

Program Visual Studio 2022 wymaga odrębnego zestawu zestawów odwołań ze wszystkich wcześniejszych wersji programu Visual Studio. Dlatego zalecamy używanie projektów udostępnionych do wygodnego wielowersyjności rozszerzenia programu Visual Studio 2022, wcześniejszych wersji i nowszych wersji. Ta technika zapewnia udostępnianie kodu, ale odrębne odwołania.

W kontekście rozszerzeń programu Visual Studio można mieć jeden projekt VSIX dla programu Visual Studio 2022 lub nowszego oraz jeden projekt VSIX dla programu Visual Studio 2019 i starszych wersji. Każdy z tych projektów zawiera tylko source.extension.vsixmanifest wystąpienie i odwołania do pakietu do zestawu SDK 16.x lub zestawu SDK 17.x. Te projekty VSIX miałyby również udostępnione odwołanie do nowego udostępnionego projektu, który będzie hostował cały kod źródłowy, który może być współużytkowany w dwóch wersjach programu Visual Studio.

W tej sekcji założono, że masz już projekt VSIX przeznaczony dla programu Visual Studio 2019 i chcesz, aby rozszerzenie działało w programie Visual Studio 2022.

Wszystkie te kroki można wykonać przy użyciu programu Visual Studio 2019:

  1. Jeśli jeszcze tego nie zrobiono, zmodernizujesz projekty, aby ułatwić wykonanie kroków w dalszej części tego procesu aktualizacji.

  2. Dodaj nowy udostępniony projekt do rozwiązania dla każdego istniejącego projektu, który odwołuje się do zestawu Visual Studio SDK. Kliknij rozwiązanie prawym przyciskiem myszy, a następnie wybierz polecenie Dodaj>nowy projekt.

    Screenshot that shows the selections for adding a new project.

  3. W oknie dialogowym Dodawanie nowego projektu wyszukaj udostępniony projekt, a następnie wybierz szablon Projekt udostępniony.

    Screenshot that shows searching for and selecting the Shared Project template.

  4. Dodaj odwołanie z każdego projektu odwołującego się do zestawu VISUAL Studio SDK do udostępnionego odpowiednika projektu.

    Screenshot that shows selections for adding a shared project reference.

  5. Przenieś cały kod źródłowy (w tym pliki cs i resx ) z każdego projektu odwołującego się do zestawu SDK programu Visual Studio do udostępnionego odpowiednika projektu. Pozostaw plik source.extension.vsixmanifest w projekcie VSIX.

    Screenshot that shows a shared project containing all source files.

  6. Przenieś pliki metadanych (na przykład informacje o wersji, licencję i ikony) i pliki VSCT do udostępnionego katalogu. Następnie dodaj je jako połączone pliki do projektu VSIX. Należy pamiętać, że katalog udostępniony jest oddzielony od udostępnionego projektu.

    Screenshot that shows selections for adding metadata and V S C T files as linked files.

    • W przypadku plików metadanych ustaw wartość Akcja kompilacji na Zawartość. Ustaw wartość Include w vsIX na true.

      Screenshot that shows including metadata files in V S I X.

    • W przypadku plików VSCT ustaw wartość Akcja kompilacji na VSCTCompile. Ustaw wartość Include in VSIX (Uwzględnij w vsIX ) na false.

      Screenshot that shows selected properties for a V S C T file.

      Jeśli program Visual Studio skarży się, że to ustawienie nie jest obsługiwane, możesz ręcznie zmienić akcję kompilacji, zwalniając projekt i zmieniając wartość Content na VSCTCompile:

      -<Content Include="..\SharedFiles\VSIXProject1Package.vsct">
      -  <Link>VSIXProject1Package.vsct</Link>
      -</Content>
      +<VSCTCompile Include="..\SharedFiles\VSIXProject1Package.vsct">
      +  <Link>VSIXProject1Package.vsct</Link>
      +  <ResourceName>Menus.ctmenu</ResourceName>
      +</VSCTCompile>
      
  7. Skompiluj projekt, aby potwierdzić, że nie wprowadzono żadnych błędów.

Projekt jest teraz gotowy do dodania obsługi programu Visual Studio 2022.

Dodawanie elementu docelowego programu Visual Studio 2022

W tej sekcji założono, że wykonano kroki, aby uwzględnić rozszerzenie programu Visual Studio w udostępnionych projektach.

Dodaj obsługę programu Visual Studio 2022 do rozszerzenia, wykonując następujące kroki. Można je ukończyć przy użyciu programu Visual Studio 2019.

  1. Dodaj nowy projekt VSIX do rozwiązania. Ten projekt będzie przeznaczony dla programu Visual Studio 2022. Usuń dowolny kod źródłowy, który został dołączony do szablonu, ale zachowaj plik source.extension.vsixmanifest .

  2. W nowym projekcie VSIX dodaj odwołanie do tego samego udostępnionego projektu, do którego odwołują się odwołania VSIX przeznaczone dla programu Visual Studio 2019.

    Screenshot that shows a solution with one shared project and two V S I X projects.

  3. Sprawdź, czy nowy projekt VSIX kompiluje się prawidłowo. Aby rozwiązać wszelkie błędy kompilatora, może być konieczne dodanie odwołań do oryginalnego projektu VSIX.

  4. W przypadku rozszerzeń programu Visual Studio zarządzanych zaktualizuj odwołania do pakietu z wersji 16.x (lub starszej) do wersji pakietu 17.x w pliku projektu docelowego programu Visual Studio 2022. Użyj Menedżer pakietów NuGet lub bezpośrednio edytuj plik projektu:

    -<PackageReference Include="Microsoft.VisualStudio.SDK" Version="16.0.206" />
    +<PackageReference Include="Microsoft.VisualStudio.SDK" Version="17.0" />
    -<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.10.32" />
    +<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.0" />
    

    Wersje pokazane w poprzednim kodzie są przeznaczone tylko do pokazu. W kodzie użyj wersji dostępnych w witrynie internetowej NuGet.

    W wielu przypadkach identyfikatory pakietów uległy zmianie. Aby uzyskać listę zmian w programie Visual Studio 2022, zapoznaj się z tabelą mapowania pakietów/zestawów.

    Rozszerzenia napisane w języku C++ nie mają jeszcze dostępnego zestawu SDK do skompilowania.

  5. W przypadku projektów języka C++ rozszerzenia muszą być kompilowane dla amd64. W przypadku rozszerzeń zarządzanych rozważ zmianę projektu z kompilowania dla dowolnego procesora CPU na wartość docelową x64. Ta zmiana gwarantuje, że w programie Visual Studio 2022 rozszerzenie zawsze ładuje się w 64-bitowym procesie. Każdy procesor CPU też jest w porządku, ale może spowodować wyświetlenie ostrzeżeń, jeśli odwołujesz się do jakichkolwiek natywnych plików binarnych tylko dla architektury x64.

    Każda zależność, która może znajdować się w module macierzystym, musi zostać zaktualizowana z obrazu x86 do obrazu AMD64.

  6. Edytuj plik source.extension.vsixmanifest, aby odzwierciedlić element docelowy programu Visual Studio 2022. <InstallationTarget> Ustaw tag , aby wskazać program Visual Studio 2022. ProductArchitecture Ustaw element , aby wskazać ładunek AMD64.

    <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
       <ProductArchitecture>amd64</ProductArchitecture>
    </InstallationTarget>
    

    Ważne

    W programie Visual Studio 2019 projektant tego pliku nie uwidacznia nowego ProductArchitecture elementu. Aby wprowadzić tę zmianę, musisz użyć edytora XML. Aby uzyskać dostęp do edytora XML, przejdź do Eksplorator rozwiązań i wybierz polecenie Otwórz za pomocą.

    Element ProductArchitecture jest krytyczny. Program Visual Studio 2022 nie zainstaluje rozszerzenia bez niego.

    Element Wartość Opis
    ProductArchitecture x86, amd64 Platformy obsługiwane przez ten plik VSIX. Nie uwzględnia wielkości liter. Użyj jednej platformy na element i jednego elementu na InstallationTarget wystąpienie. W przypadku wersji produktów mniejszych niż 17.0 wartość domyślna to x86 i może zostać pominięta. W przypadku wersji 17.0 i nowszych ten element jest wymagany i nie ma wartości domyślnej. W przypadku programu Visual Studio 2022 jedyną prawidłową zawartością dla tego elementu jest amd64.
  7. Wprowadź wszelkie inne korekty niezbędne w pliku source.extension.vsixmanifest , aby dopasować je do elementu, który jest przeznaczony dla programu Visual Studio 2019 (jeśli istnieje).

    Jeśli publikujesz dwie wersje rozszerzenia, które są przeznaczone dla innej wersji programu Visual Studio, upewnij się, że identyfikator VSIX w Identity elemecie manifestu jest inny dla każdego rozszerzenia.

Na tym etapie masz rozszerzenie VSIX przeznaczone dla programu Visual Studio 2022. Należy skompilować projekt VSIX przeznaczony dla programu Visual Studio 2022 i pracować z dowolnymi widocznymi przerwami kompilacji. Jeśli nie masz przerw w kompilacji w projekcie VSIX przeznaczonym dla programu Visual Studio 2022, gratulacje! Wszystko jest gotowe do testowania.

Obsługa zmian interfejsu API powodujących niezgodność

Istotne zmiany interfejsu API mogą wymagać aktualizacji kodu uruchomionego we wcześniejszych wersjach programu Visual Studio. Aby uzyskać porady dotyczące sposobu aktualizowania kodu, zobacz Istotne zmiany interfejsu API w programie Visual Studio 2022.

Podczas dostosowywania kodu zalecamy użycie kompilacji warunkowej. Kod może następnie nadal obsługiwać wcześniejsze wersje programu Visual Studio podczas dodawania obsługi programu Visual Studio 2022.

Po korzystaniu z kompilowania rozszerzenia przeznaczonego dla programu Visual Studio 2022 przejdź do testowania.

Używanie symboli kompilacji warunkowej

Jeśli chcesz użyć tego samego kodu źródłowego, nawet tego samego pliku, dla programu Visual Studio 2022 i starszych wersji, może być konieczne użycie kompilacji warunkowej. Następnie możesz rozwidlić kod, aby dostosować się do zmian powodujących niezgodność. Kompilacja warunkowa to funkcja języków C#, Visual Basic i C++. Może służyć do udostępniania większości kodu podczas przydzielania rozbieżnych interfejsów API w określonych miejscach.

Aby uzyskać więcej informacji na temat użycia dyrektyw preprocesora i symboli kompilacji warunkowej, zobacz Dyrektywy preprocesora języka C#.

Projekty przeznaczone dla starszych wersji programu Visual Studio będą potrzebować symbolu kompilacji warunkowej. Ten symbol może następnie służyć do rozwidlenia kodu w celu używania różnych interfejsów API. Symbol kompilacji warunkowej można ustawić na stronie właściwości projektu:

Screenshot that shows the box for entering a conditional compilation symbol.

Pamiętaj, aby ustawić symbol kompilacji dla wszystkich konfiguracji. Domyślnie wprowadzony symbol może mieć zastosowanie tylko do jednej konfiguracji.

Techniki języka C#

Symbol kompilacji można użyć jako dyrektywy preprocesora (#if), jak pokazano w poniższym kodzie. Następnie możesz utworzyć rozwidlenie kodu, aby poradzić sobie ze zmianą powodującą niezgodność między wersjami programu Visual Studio.

    Guid myGuid = new Guid("{633FBA02-719B-40E7-96BF-0899767CD104}");
    uint myFlags = 0;
    IVsShell shell = await AsyncServiceProvider.GlobalProvider.GetServiceAsync<SVsShell, IVsShell>();
#if Dev16
    shell.LoadUILibrary(myGuid, myFlags, out uint ptrLib);
#else
    shell.LoadUILibrary(myGuid, myFlags, out IntPtr ptrLib);
#endif

W niektórych przypadkach można użyć var polecenia , aby uniknąć nazewnictwa typu i uniknąć potrzeby regionów #if . Powyższy fragment kodu można również napisać jako:

    Guid myGuid = new Guid("{633FBA02-719B-40E7-96BF-0899767CD104}");
    uint myFlags = 0;
    IVsShell shell = await AsyncServiceProvider.GlobalProvider.GetServiceAsync<SVsShell, IVsShell>();
    shell.LoadUILibrary(myGuid, myFlags, out var ptrLib);

Gdy używasz #if składni, zwróć uwagę, jak można użyć listy rozwijanej dla kontekstu usługi językowej, aby zmienić wyróżnianie składni. Druga lista rozwijana ułatwia usłudze językowej skupienie uwagi na jednej docelowej wersji programu Visual Studio dla tego rozszerzenia w porównaniu z drugą.

Screenshot that shows conditional compilation in a shared project.

Techniki udostępniania kodu XAML

Język XAML nie ma preprocesora, aby umożliwić dostosowywanie zawartości na podstawie symboli preprocesora. Może być konieczne skopiowanie i obsługa dwóch stron XAML, których zawartość różni się między programem Visual Studio 2022 i starszymi wersjami.

W niektórych przypadkach odwołanie do typu, który istnieje w odrębnych zestawach w programie Visual Studio 2022 i wcześniejszych wersjach, nadal może być reprezentowane w jednym pliku XAML. Usuń przestrzeń nazw odwołującą się do zestawu:

-xmlns:vsui="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"
-Value="{DynamicResource {x:Static vsui:TreeViewColors.SelectedItemActiveBrushKey}}"
+Value="{DynamicResource TreeViewColors.SelectedItemActiveBrushKey}"

Testowanie rozszerzenia

Aby przetestować rozszerzenie przeznaczone dla programu Visual Studio 2022, musisz mieć zainstalowany program Visual Studio 2022. Nie będzie można uruchamiać rozszerzeń 64-bitowych we wcześniejszych wersjach programu Visual Studio.

Za pomocą programu Visual Studio 2022 można kompilować i testować rozszerzenia niezależnie od tego, czy są przeznaczone dla programu Visual Studio 2022, czy starszej wersji. Po otwarciu projektu VSIX z programu Visual Studio 2022 zostanie otwarte eksperymentalne wystąpienie programu Visual Studio.

Zdecydowanie zalecamy przetestowanie przy użyciu każdej wersji programu Visual Studio, która ma być obsługiwana przez rozszerzenie.

Publikowanie rozszerzenia

Dodano element docelowy programu Visual Studio 2022 do rozszerzenia i przetestowano go. Teraz możesz opublikować rozszerzenie dla świata do podziwiania.

Witryna Visual Studio Marketplace

Publikowanie rozszerzenia w witrynie Visual Studio Marketplace to doskonały sposób na znalezienie i zainstalowanie rozszerzenia przez nowych użytkowników. Niezależnie od tego, czy rozszerzenie jest przeznaczone wyłącznie dla programu Visual Studio 2022, czy przeznaczone dla starszych wersji programu Visual Studio, witryna Marketplace jest dostępna do obsługi.

W przyszłości w witrynie Marketplace będzie można przekazać wiele vsIX do tylko jednej listy w witrynie Marketplace. Następnie możesz przekazać docelowy plik VSIX programu Visual Studio 2022 i vsIX dla starszej wersji programu Visual Studio. Użytkownicy automatycznie uzyskają odpowiedni plik VSIX dla zainstalowanej wersji programu Visual Studio, gdy korzystają z menedżera rozszerzeń programu Visual Studio.

Instalator niestandardowy

Jeśli skompilujesz plik MSI lub EXE w celu zainstalowania rozszerzenia i zduplikowania vsixinstaller.exe w celu zainstalowania (części) rozszerzenia, pamiętaj, że instalator VSIX w programie Visual Studio 2022 został zaktualizowany. Deweloperzy muszą użyć wersji instalatora VSIX dołączonej do programu Visual Studio 2022, aby zainstalować rozszerzenia w tej wersji programu Visual Studio.

Instalator VSIX w programie Visual Studio 2022 instaluje również odpowiednie rozszerzenia przeznaczone dla poprzednich wersji programu Visual Studio, które istnieją w programie Visual Studio 2022 na tej samej maszynie.

Udział sieciowy

Rozszerzenie można udostępnić za pośrednictwem sieci LAN lub w inny sposób. Jeśli docelowy jest program Visual Studio 2022 i starsze wersje, musisz osobno udostępnić wiele vsIX. Nadaj im nazwy plików (lub umieść je w unikatowych folderach), które ułatwiają użytkownikom zapoznanie się z programem VSIX do zainstalowania na podstawie zainstalowanej wersji programu Visual Studio.

Zależności

Jeśli vsIX określa inne VSIX jako zależności za pośrednictwem <dependency> elementu, każdy przywoływane VSIX musi być zainstalowany w tych samych obiektach docelowych i architekturach produktów co vsIX. Jeśli zależny plik VSIX nie obsługuje docelowej instalacji programu Visual Studio, plik VSIX zakończy się niepowodzeniem.

Jest ok, aby zależny vsIX obsługiwał więcej obiektów docelowych i architektur niż Twoje, po prostu nie mniej. To ograniczenie oznacza, że podejście wdrażania i dystrybucji systemu VSIX z zależnościami powinno odzwierciedlać te zależności.

Pytania i odpowiedzi

Pyt.: Moje rozszerzenie nie wymaga żadnych zmian w współdziałaniu, ponieważ dostarcza tylko dane (na przykład szablony). Czy mogę utworzyć jedno rozszerzenie, które obejmuje również program Visual Studio 2022?

Ach: Tak! Aby uzyskać informacje o tym, zobacz Rozszerzenia bez uruchamiania kodu .

Pyt.: Zależność NuGet wprowadza stare zestawy współdziałania i powoduje starzejące się klasy. Co mam robić?

1: Dodaj następujący wiersz do pliku csproj , aby uniknąć duplikowania zestawów:

    <PackageReference Include="<Name of offending assembly>" ExcludeAssets="compile" PrivateAssets="all" />

Ten kod uniemożliwi import odwołań do pakietu ze starej wersji zestawu z innych zależności.

Pyt.: Moje polecenia i klawisze dostępu przestały działać w programie Visual Studio po przełączeniu plików źródłowych do udostępnionego projektu. Co mam robić?

1: Krok 2.4 przykładu Optymalizator obrazów pokazuje, jak dodać pliki VSCT jako połączone elementy, aby były kompilowane w pliku VSCT.

Postępuj zgodnie z przykładem krok po kroku ImageOptimizer z linkami do projektu i zmian kodu dla każdego kroku.