Aktualisieren einer Visual Studio-Erweiterung für Visual Studio 2022
Wichtig
Die Ratschläge in diesem Artikel können Entwickler beim Migrieren von Erweiterungen unterstützen, die wichtige Änderungen an der Arbeit in Visual Studio 2019 und Visual Studio 2022 erfordern. In diesen Fällen wird empfohlen, zwei VSIX-Projekte und die bedingte Kompilierung zu verwenden.
Viele Erweiterungen funktionieren sowohl in Visual Studio 2019 als auch in Visual Studio 2022 mit geringfügigen Änderungen, die die Modernisierung Ihrer Erweiterung in diesem Artikel nicht erfordern. Probieren Sie Ihre Erweiterung in Visual Studio 2022 aus, und bewerten Sie, welche Option für Ihre Erweiterung am besten geeignet ist.
Visual Studio 2022 ist eine 64-Bit-Anwendung und führt einige bahnbrechende Änderungen im Visual Studio SDK ein. Dieser Artikel führt Sie durch die Schritte, die erforderlich sind, um Ihre Erweiterung mit der aktuellen Vorschau von Visual Studio 2022 zu verwenden. Ihre Erweiterung kann dann für Benutzer bereit sein, bevor Visual Studio 2022 die allgemeine Verfügbarkeit erreicht.
Installieren von Visual Studio und Kompilieren von Erweiterungen
Installieren Sie Visual Studio 2022 aus Visual Studio 2022-Downloads.
In einer .NET-Sprache geschriebene Erweiterungen
Das Visual Studio SDK, das für verwaltete Erweiterungen Visual Studio 2022 zum Ziel hat, steht ausschließlich auf NuGet zur Verfügung:
- Das Metapaket Microsoft.VisualStudio.Sdk (Versionen 17.x) enthält die meisten oder alle Referenzassemblys, die Sie benötigen.
- Auf das Paket Microsoft.VSSDK.BuildTools (Versionen 17.x) sollte aus Ihrem VSIX-Projekt verwiesen werden, damit ein mit Visual Studio 2022 kompatibles VSIX erstellt werden kann.
Auch wenn Sie keine Breaking Changes angeben,müssen Erweiterungen mit der Plattform Any CPU oder x64 kompiliert werden. Die x86-Plattform ist nicht mit dem 64-Bit-Prozess in Visual Studio 2022 kompatibel.
In C++ geschriebene Erweiterungen
Das Visual Studio SDK für Erweiterungen, die mit C++ kompiliert wurden, ist wie gewohnt mit dem installierten Visual Studio SDK verfügbar.
Auch wenn Sie auf keine wichtigen Änderungen verweisen, müssen Erweiterungen speziell für das Visual Studio 2022 SDK und für AMD64 kompiliert werden.
Erweiterungen mit ausgeführtem Code
Erweiterungen mit ausgeführtem Code müssen speziell für Visual Studio 2022 kompiliert werden. Visual Studio 2022 lädt keine Erweiterung, die auf eine frühere Version von Visual Studio ausgerichtet ist.
Erfahren Sie, wie Sie Ihre Erweiterungen für frühere Visual Studio-Versionen zu Visual Studio 2022 migrieren:
- Modernisieren Sie Ihre Projekte.
- Refaktorisieren Sie Ihren Quellcode in ein gemeinsames Projekt , um die Ausrichtung für Visual Studio 2022 und ältere Versionen zu ermöglichen.
- Fügen Sie ein Visual Studio 2022-gezieltes VSIX-Projekt und eine Paket-/Assembly-Neuzuordnungstabelle hinzu.
- Nehmen Sie erforderliche Codeanpassungen vor.
- Testen Sie die Visual Studio 2022-Erweiterung.
- Veröffentlichen Sie Ihre Visual Studio 2022-Erweiterung.
Erweiterungen ohne ausgeführtem Code
Erweiterungen, die keinen ausgeführten Code enthalten (z. B. Projekt- oder Elementvorlagen), sind nicht erforderlich, um die vorherigen Schritte auszuführen, einschließlich der Produktion von zwei unterschiedlichen VSIXs.
Ändern Sie stattdessen das vsIX-Element so, dass die source.extension.vsixmanifest
-Datei zwei Installationsziele deklariert:
<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>
Sie können die Schritte in diesem Artikel über die Verwendung freigegebener Projekte und mehrerer VSIXs überspringen. Sie können mit dem Testen fortfahren.
Hinweis
Wenn Sie eine neue Visual Studio-Erweiterung mithilfe von Visual Studio 2022 erstellen und auch Visual Studio 2019 oder eine frühere Version verwenden möchten, lesen Sie dieses Handbuch.
MSBuild-Aufgaben
Wenn Sie MSBuild-Aufgaben erstellen, beachten Sie, dass sie in Visual Studio 2022 wahrscheinlich in einen 64-Bit-MSBuild.exe Prozess geladen werden. Wenn für Ihre Aufgabe ein 32-Bit-Prozess ausgeführt werden muss, lesen Sie Konfigurieren von Zielen und Aufgaben, um sicherzustellen, dass MSBuild Ihre Aufgabe in einem 32-Bit-Prozess lädt.
Modernisieren Sie Ihre VSIX-Projekte.
Bevor Sie der Erweiterung Visual Studio 2022-Unterstützung hinzufügen, empfehlen wir dringend, dass Sie Ihr vorhandenes Projekt bereinigen und modernisieren:
Ersetzen Sie alle direkten Visual Studio SDK-Assemblyverweise durch
PackageReference
Elemente:-<Reference Include="Microsoft.VisualStudio.OLE.Interop" /> +<PackageReference Include="Microsoft.VisualStudio.OLE.Interop" Version="..." />
Tipp
Sie können viele Assemblyverweise durch nur eine
PackageReference
Instanz für das Metapaket ersetzen:-<Reference Include="Microsoft.VisualStudio.OLE.Interop" /> -<Reference Include="Microsoft.VisualStudio.Interop" /> -<Reference Include="Microsoft.VisualStudio.Interop.8.0" /> +<PackageReference Include="Microsoft.VisualStudio.Sdk" Version="..." />
Stellen Sie sicher, dass Sie Paketversionen auswählen, die der Mindestversion von Visual Studio entsprechen, auf die Sie abzielen.
Einige Assemblys, die nicht für das Visual Studio SDK (z. B. Newtonsoft.Json.dll) eindeutig sind, wurden möglicherweise über einen einfachen <Reference Include="Newtonsoft.Json" />
Verweis vor Visual Studio 2022 auffindbar. In Visual Studio 2022 benötigen sie jedoch stattdessen einen Paketverweis. Der Grund dafür ist, dass einige Visual Studio-Runtime- und SDK-Verzeichnisse aus dem Standardmäßigen Assemblysuchpfad in MSBuild entfernt wurden.
Wenn Sie von direkten Assemblyverweise auf NuGet-Paketverweise wechseln, können Sie zusätzliche Assemblyverweise und Analysepakete aufnehmen, da NuGet automatisch das transitive Schließen von Abhängigkeiten installiert. Dies ist im Allgemeinen OK, kann aber während des Builds zu zusätzlichen Warnungen führen. Arbeiten Sie sich durch diese Warnungen und beheben Sie so viele wie möglich. Erwägen Sie die Verwendung von In-Code-Regionen #pragma warning disable <id>
, um Warnungen zu unterdrücken, die nicht aufgelöst werden können.
Gemeinsame Projekte für Multiadressierung verwenden
Freigegebene Projekte sind ein Projekttyp, der in Visual Studio 2015 eingeführt wurde. Für freigegebene Projekte in Visual Studio können Quellcodedateien zwischen mehreren Projekten gemeinsam genutzt und unterschiedlich erstellt werden, indem bedingte Kompilierungssymbole und eindeutige Sätze von Verweisen verwendet werden.
Visual Studio 2022 erfordert einen eindeutigen Satz von Referenzassemblys aus allen früheren Visual Studio-Versionen. Daher empfehlen wir, dass Sie freigegebene Projekte verwenden, um Ihre Erweiterung bequem auf Visual Studio 2022, frühere Versionen und höhere Versionen anzuzielen. Mit dieser Technik erhalten Sie Codefreigabe, aber unterschiedliche Verweise.
Im Kontext von Visual Studio-Erweiterungen könnten Sie über ein VSIX-Projekt für Visual Studio 2022 und höher und ein VSIX-Projekt für Visual Studio 2019 und früher verfügen. Jedes dieser Projekte enthält nur eine source.extension.vsixmanifest
Instanz und die Paketverweise auf das 16.x SDK oder das 17.x SDK. Diese VSIX-Projekte verfügen auch über einen freigegebenen Projektverweis auf ein neues freigegebenes Projekt, das den gesamten Quellcode hosten kann, der in den beiden Visual Studio-Versionen freigegeben werden kann.
In diesem Abschnitt wird davon ausgegangen, dass Sie bereits über ein VSIX-Projekt verfügen, das auf Visual Studio 2019 ausgerichtet ist und die Erweiterung für Visual Studio 2022 verwendet werden soll.
Sie können alle diese Schritte ausführen, indem Sie Visual Studio 2019 verwenden:
Wenn Sie dies noch nicht getan haben, modernisieren Sie Ihre Projekte, um die Schritte später in diesem Updateprozess zu vereinfachen.
Fügen Sie Ihrer Lösung für jedes vorhandene Projekt, das auf das Visual Studio SDK verweist, ein neues freigegebenes Projekt hinzu. icken Sie mit der rechten Maustaste auf die Lösung und wählen Sie dann Neues>Projekt hinzufügen.
Suchen Sie im Dialogfeld Neues Projekt hinzufügen nach freigegebenes Projekt und wählen Sie dann die Vorlage Freigegebenes Projekt aus .
Fügen Sie jedem Visual Studio SDK-verweisenden Projekt einen Verweis auf das gemeinsam genutzte Projekt hinzu.
Verschieben Sie den gesamten Quellcode (einschließlich .cs - und RESX-Dateien ) aus jedem Visual Studio SDK-verweisenden Projekt in das gemeinsam genutzte Projekt. Belassen Sie die Datei source.extension.vsixmanifest im VSIX-Projekt.
Verschieben von Metadatendateien (z. B. Versionshinweise, Lizenz und Symbole) und VSCT-Dateien in ein freigegebenes Verzeichnis. Fügen Sie sie dann als verknüpfte Dateien zum VSIX-Projekt hinzu. Beachten Sie, dass das freigegebene Verzeichnis vom freigegebenen Projekt getrennt ist.
Legen Sie für Metadatendateien Build Action auf Inhalt fest. Legen Sie Include in VSIX auf True fest.
Legen Sie die VSCT-Dateien Build Action auf VSCTCompile fest. Legen Sie Include in VSIX auf False fest.
Wenn Sich Visual Studio beschwert, dass diese Einstellung nicht unterstützt wird, können Sie die Build Action manuell ändern, indem Sie das Projekt entladen und zu
Content
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>
Erstellen Sie Ihr Projekt, um zu bestätigen, dass keine Fehler aufgetreten sind.
Ihr Projekt ist jetzt bereit, Visual Studio 2022-Unterstützung hinzuzufügen.
Hinzufügen eines Visual Studio 2022-Ziels
In diesem Abschnitt wird davon ausgegangen, dass Sie die Schritte zum Faktorieren Der Visual Studio-Erweiterung mit freigegebenen Projekten abgeschlossen haben.
Fügen Sie nach den folgenden Schritten die Visual Studio 2022-Unterstützung zu Ihrer Erweiterung hinzu. Sie können sie mit Visual Studio 2019 abschließen.
Fügen Sie Ihrer Projektmappe ein neues VSIX-Projekt hinzu. Dieses Projekt hat Visual Studio 2022 als Ziel. Entfernen Sie den Quellcode, der in der Vorlage enthalten ist, behalten Sie jedoch die Datei source.extension.vsixmanifest bei.
Fügen Sie in Ihrem neuen VSIX-Projekt einen Verweis auf dasselbe freigegebene Projekt hinzu, auf das Ihre Visual Studio 2019-Ziel-VSIX-Verweise verweisen.
Stellen Sie sicher, dass das neue VSIX-Projekt ordnungsgemäß erstellt wird. Gegebenenfalls müssen zur Abstimmung Ihres ursprünglichen VSIX-Projekts Verweise hinzufügen, um Compilerfehler zu beheben.
Aktualisieren Sie bei verwalteten Visual Studio-Erweiterungen Ihre Paketverweise von 16.x (oder früher) auf die 17.x-Paketversionen in Ihrer Visual Studio 2022-Zielprojektdatei. Verwenden Sie den NuGet-Paket-Manager oder bearbeiten Sie die Projektdatei direkt.
-<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" />
Die im vorherigen Code gezeigten Versionen dienen nur zur Demonstration. Verwenden Sie in Ihrem Code Versionen, die von der NuGet-Website verfügbar sind.
In vielen Fällen wurden Paket-IDs geändert. Eine Liste der Änderungen in Visual Studio 2022 finden Sie in der Paket-/Assemblyzuordnungstabelle.
In C++ geschriebene Erweiterungen verfügen noch nicht über ein verfügbares SDK zum Kompilieren.
Für C++-Projekte müssen Erweiterungen für AMD64 kompiliert werden. Bei verwalteten Erweiterungen sollten Sie das Projekt von der Erstellung für Any CPU auf x64 ändern. Durch diese Änderung wird sichergestellt, dass ihre Erweiterung in Visual Studio 2022 immer in einem 64-Bit-Prozess geladen wird. Any CPU ist ebenfalls in Ordnung, kann aber Warnungen erzeugen, wenn Sie nur auf x64-systemeigene Binärdateien verweisen.
Jede Abhängigkeit, die Ihre Erweiterung möglicherweise von einem nativen Modul hat, muss von einem x86-Image auf ein AMD64-Image aktualisiert werden.
Bearbeiten Sie Ihre Datei source.extension.vsixmanifest so, dass Visual Studio 2022 als Ziel widergespiegelt wird. Legen Sie das Tag
<InstallationTarget>
zur Angabe von Visual Studio 2022 fest. Legen Sie das ElementProductArchitecture
zur Angabe einer AMD64-Payload fest.<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)"> <ProductArchitecture>amd64</ProductArchitecture> </InstallationTarget>
Wichtig
In Visual Studio 2019 macht der Designer für diese Datei das neue
ProductArchitecture
Element nicht verfügbar. Sie müssen einen XML-Editor verwenden, um diese Änderung vorzunehmen. Um auf den XML-Editor zuzugreifen, wechseln Sie zu Projektmappen-Explorer, und wählen Sie den Befehl Open with aus.Das
ProductArchitecture
Element ist kritisch. Visual Studio 2022 installiert Ihre Erweiterung nicht ohne sie.Element Wert Beschreibung ProductArchitecture
x86
,amd64
Die Plattformen, die von diesem VSIX unterstützt werden. Groß-/Kleinschreibung wird nicht beachtet. Verwenden Sie eine Plattform pro Element und ein Element pro InstallationTarget
Instanz. Bei Produktversionen unter 17.0 istx86
der Standardwert und kann weggelassen werden. Für Produktversionen 17.0 und höher ist dieses Element erforderlich, und es gibt keinen Standardwert. Für Visual Studio 2022 istamd64
der einzige gültige Inhalt für dieses Element .Nehmen Sie alle anderen Anpassungen vor, die in source.extension.vsixmanifest erforderlich sind, damit sie mit dem für Visual Studio 2019 (sofern vorhanden) übereinstimmen.
Wenn Sie zwei Versionen Ihrer Erweiterung veröffentlichen, die jeweils auf eine andere Version von Visual Studio abzielen, stellen Sie sicher, dass die ID des VSIX im
Identity
Element des Manifests für jede Erweiterung unterschiedlich ist.
An diesem Punkt eine Erweiterungs-VSIX mit Visual Studio 2022 als Ziel. Sie sollten Ihr Visual Studio 2022-gezieltes VSIX-Projekt erstellen und alle angezeigten Buildunterbrechungen durchlaufen. Wenn Sie keine Buildunterbrechungen in Ihrem Visual Studio 2022-gezielten VSIX-Projekt haben, herzlichen Glückwunsch! Sie sind nun testbereit.
Behandeln Sie wichtige API-Änderungen
Das Unterbrechen von API-Änderungen erfordert möglicherweise Updates für Code, der in früheren Versionen von Visual Studio ausgeführt wurde. Tipps zum Aktualisieren ihres Codes finden Sie unter Behandeln wichtiger API-Änderungen in Visual Studio 2022.
Wenn Sie Ihren Code anpassen, empfiehlt es sich, die bedingte Kompilierung zu verwenden. Ihr Code kann dann weiterhin frühere Visual Studio-Versionen unterstützen, während Unterstützung für Visual Studio 2022 hinzugefügt wird.
Wenn Sie ihre Visual Studio 2022-gezielte Erweiterungserstellung erhalten, fahren Sie mit dem Testen fort.
Verwenden Sie Symbole für die bedingte Kompilierung
Wenn Sie für Visual Studio 2022 und frühere Versionen denselben Quellcode verwenden möchten, müssen Sie möglicherweise die bedingte Kompilierung verwenden. Anschließend können Sie ihren Code verzweigen, um sich an wichtige Änderungen anzupassen. Die bedingte Kompilierung ist ein Feature der Sprachen C#, Visual Basic und C++. Sie kann verwendet werden, um den meisten Code freizugeben und dabei divergierende APIs an bestimmten Stellen zu beachten.
Weitere Informationen zur Verwendung von Präprozessordirektiven und Symbolen für die bedingte Kompilierung finden Sie unter C#-Präprozessordirektiven.
Ihre Projekte, die auf frühere Visual Studio-Versionen abzielen, benötigen ein Symbol für die bedingte Kompilierung. Dieses Symbol kann dann verwendet werden, um den Code zu verzweigen, um die verschiedenen APIs zu verwenden. Sie können das Symbol für die bedingte Kompilierung auf der Projekteigenschaftenseite festlegen:
Stellen Sie sicher, dass Sie das Kompilierungssymbol für alle Konfigurationen festlegen. Standardmäßig gilt das eingegebene Symbol möglicherweise nur für eine Konfiguration.
C# Techniken
Sie können das Kompilierungssymbol wie im folgenden Code dargestellt als Präprozessordirektive (#if
) verwenden. Anschließend können Sie ihren Code verzweigen, um eine wichtige Änderung zwischen Visual Studio-Versionen zu bewältigen.
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
In einigen Fällen können Sie die var
Benennung des Typs vermeiden und die Notwendigkeit von #if
-Regionen vermeiden. Der vorangehende Codeausschnitt kann auch wie folgt geschrieben werden:
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);
Wenn Sie die #if
Syntax verwenden, beachten Sie, wie Sie die Dropdownliste für den Sprachdienstkontext verwenden können, um die Syntaxmarkierung zu ändern. Die andere Dropdownliste hilft dem Sprachdienst, sich auf eine Visual Studio-Zielversion für diese Erweiterung im Vergleich zu einer anderen zu konzentrieren.
XAML-Freigabetechniken
XAML verfügt nicht über einen Präprozessor, um das Anpassen von Inhalten basierend auf Präprozessorsymbolen zu ermöglichen. Möglicherweise müssen Sie zwei XAML-Seiten kopieren und verwalten, deren Inhalt sich zwischen Visual Studio 2022 und früheren Versionen unterscheidet.
In einigen Fällen kann ein Verweis auf einen Typ, der in unterschiedlichen Assemblys in Visual Studio 2022 und früheren Versionen vorhanden ist, in einer XAML-Datei weiterhin dargestellt werden. Entfernen Sie den Namespace, der auf die Assembly verweist:
-xmlns:vsui="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"
-Value="{DynamicResource {x:Static vsui:TreeViewColors.SelectedItemActiveBrushKey}}"
+Value="{DynamicResource TreeViewColors.SelectedItemActiveBrushKey}"
Testen der Erweiterung
Um eine Erweiterung zu testen, die auf Visual Studio 2022 ausgerichtet ist, müssen Sie Visual Studio 2022 installiert haben. Sie können 64-Bit-Erweiterungen nicht in früheren Versionen von Visual Studio ausführen.
Sie können Visual Studio 2022 verwenden, um Ihre Erweiterungen zu erstellen und zu testen, unabhängig davon, ob sie auf Visual Studio 2022 oder eine frühere Version abzielen. Wenn Sie ein VSIX-Projekt aus Visual Studio 2022 öffnen, wird eine experimentelle Instanz von Visual Studio geöffnet.
Es wird dringend empfohlen, mit jeder Version von Visual Studio zu testen, die die Erweiterung unterstützen soll.
Veröffentlichen der Erweiterung
Sie haben Ihrer Erweiterung ein Visual Studio 2022-Ziel hinzugefügt und getestet. Jetzt können Sie die Erweiterung veröffentlichen, damit die Welt sie bewundern kann.
Visual Studio Marketplace
Das Veröffentlichen Ihrer Erweiterung auf Visual Studio Marketplace ist eine hervorragende Möglichkeit, um neue Benutzer zu finden und zu installieren. Unabhängig davon, ob Ihre Erweiterung ausschließlich auf Visual Studio 2022 ausgerichtet ist oder auch auf ältere Visual Studio-Versionen ausgerichtet ist, ist der Marketplace vorhanden, um Sie zu unterstützen.
In Zukunft ermöglicht Ihnen der Marketplace, mehrere VSIXs in nur einen Marketplace-Eintrag hochzuladen. Anschließend können Sie Ihr Visual Studio 2022-gezieltes VSIX und ein VSIX für eine frühere Version von Visual Studio hochladen. Ihre Benutzer erhalten automatisch die richtige VSIX für die Visual Studio-Version, die sie installiert haben, wenn sie den Visual Studio-Erweiterungs-Manager verwenden.
Benutzerdefinierter Installer
Wenn Sie eine MSI- oder EXE-Datei erstellen, um Ihre Erweiterung zu installieren und die vsixinstaller.exe
Erweiterung zu installieren (Teil der) Erweiterung zu installieren, wissen Sie, dass das VSIX-Installationsprogramm in Visual Studio 2022 aktualisiert wurde. Entwickler müssen die Version des VSIX-Installationsprogramms verwenden, das im Lieferumfang von Visual Studio 2022 enthalten ist, um Erweiterungen für diese Version von Visual Studio zu installieren.
Das VSIX-Installationsprogramm in Visual Studio 2022 installiert auch anwendbare Erweiterungen, die auf frühere Versionen von Visual Studio abzielen, die mit Visual Studio 2022 auf demselben Computer vorhanden sind.
Netzwerkfreigabe
Sie können Ihre Erweiterung über ein LAN oder auf eine andere Weise teilen. Wenn Sie Visual Studio 2022 und frühere Versionen als Ziel verwenden, müssen Sie Ihre mehreren VSIXs einzeln freigeben. Geben Sie ihnen Dateinamen (oder platzieren Sie sie in eindeutigen Ordnern), die Ihren Benutzern helfen, zu wissen, welche VSIX basierend auf der installierten Version von Visual Studio installiert werden soll.
Abhängigkeiten
Wenn Ihr VSIX andere VSIXs als Abhängigkeiten über das <dependency>
Element angibt, muss jeder referenzierte VSIX in denselben Zielen und Produktarchitekturen wie Ihr VSIX installiert werden. Wenn eine abhängige VSIX die gezielte Installation von Visual Studio nicht unterstützt, schlägt Ihr VSIX fehl.
Es ist ok für die abhängige VSIX, mehr Ziele und Architekturen zu unterstützen als Ihre, nur nicht weniger. Diese Einschränkung bedeutet, dass der Bereitstellungs- und Verteilungsansatz einer VSIX mit Abhängigkeiten dem ihrer abhängigen Elemente entsprechen sollte.
Q & A
F: Meine Erweiterung erfordert keine Interoperabilitätsänderungen, da sie nur Daten bereitstellt (z. B. Vorlagen). Kann ich eine einzelne Erweiterung erstellen, die auch Visual Studio 2022 enthält?
A: Ja. Informationen hierzu finden Sie unter Erweiterungen ohne Code auszuführen.
F: Eine NuGet-Abhängigkeit führt zu alten Interoperabilitätsassemblys und führt zu Zusammenstößen von Klassen. Wie sollte ich vorgehen?
A: Fügen Sie der .csproj-Datei die folgende Zeile hinzu, um doppelte Assemblys zu vermeiden:
<PackageReference Include="<Name of offending assembly>" ExcludeAssets="compile" PrivateAssets="all" />
Dieser Code verhindert, dass Paketverweise die alte Version der Assembly aus anderen Abhängigkeiten importieren.
F: Meine Befehle und Hotkeys funktionieren in Visual Studio nicht mehr, nachdem ich meine Quelldateien zu einem freigegebenen Projekt gewechselt habe. Wie sollte ich vorgehen?
A: Schritt 2.4 des Image Optimizer-Beispiels zeigt, wie VSCT-Dateien als verknüpfte Elemente hinzugefügt werden, damit sie in Ihre VSCT-Datei kompiliert werden.
Zugehöriger Inhalt
Führen Sie ein Schritt-für-Schritt-Beispiel, ImageOptimizer, mit Links zum Projekt und Codeänderungen für jeden Schritt aus.