Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Handbuch werden alle Schritte zum Hinzufügen der Visual Studio 2022-Unterstützung angezeigt, während visual Studio 2019-Unterstützung mithilfe der Bildoptimierererweiterung als Fallstudie beibehalten wird.
Dieser Leitfaden enthält eine ausführliche Anleitung mit Links zu Git-Commits für jeden Schritt. Den fertiggestellten Pull Request finden Sie hier: https://github.com/madskristensen/ImageOptimizer/pull/46.
Weitere Beispiele finden Sie am Ende dieses Leitfadens.
Schritt 1 : Modernisieren des Projekts
Weitere Informationen hierzu finden Sie unter Modernisieren des Projekts.
Zunächst aktualisieren wir das VSIX- und das Unit-Test-Projekt auf .NET 4.7.2 in der Eigenschaftenseite der Projekte.

Image Optimizer hat auf einige alte benutzerdefinierte 14.* und 15.* Pakete verwiesen, stattdessen installieren wir das Microsoft.VisualStudio.Sdk NuGet-Paket, das alle erforderlichen Verweise konsolidiert.
- <ItemGroup>
- <PackageReference Include="Madskristensen.VisualStudio.SDK">
- <Version>14.0.0-beta4</Version>
- </PackageReference>
- <PackageReference Include="Microsoft.VSSDK.BuildTools">
- <Version>15.8.3247</Version>
- <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
- <PrivateAssets>all</PrivateAssets>
- </PackageReference>
- </ItemGroup>
+ <ItemGroup>
+ <PackageReference Include="Microsoft.VisualStudio.SDK">
+ <Version>16.9.31025.194</Version>
+ </PackageReference>
+ </ItemGroup>
Das Projekt wird erfolgreich erstellt, und es werden einige Threadingwarnungen angezeigt. Wir beheben diese Warnungen durch Klicken auf ctrl und . und verwenden IntelliSense, um die fehlenden Threadumschaltungslinien hinzuzufügen.
Schritt 2: Umgestalten des Quellcodes in ein freigegebenes Projekt
Weitere Informationen hierzu finden Sie unter Freigegebene Projekte.
Die Unterstützung von Visual Studio 2022 erfordert das Hinzufügen eines neuen freigegebenen Projekts, das den Quellcode der Erweiterung enthält, der zwischen den Visual Studio 2019- und Visual Studio 2022 VSIX-Projekten gemeinsam verwendet wird.
Hinzufügen eines neuen freigegebenen Projekts zu Ihrer Lösung

Fügen Sie Ihrem VSIX-Projekt einen Verweis auf das freigegebene Projekt hinzu.
Verschieben Sie Die Quellcodedateien (cs, xaml, resx) in das neue freigegebene Projekt mit Ausnahme für Folgendes:
source.extension.vsixmanifest- Erweiterungsmetadatendateien (Symbole, Lizenzen, Versionshinweise usw.)
- VSCT-Dateien
- Verknüpfte Dateien
- Externe Tools oder Bibliotheken, die im VSIX enthalten sein müssen

Verschieben Sie nun alle Metadaten, VSCT-Dateien, verknüpfte Dateien und externe Tools/Bibliotheken an einen freigegebenen Speicherort, und fügen Sie sie wieder als verknüpfte Elemente zum VSIX-Projekt hinzu. Entfernen Sie nicht
source.extension.vsixmanifest.git commit 73ba920 – Verschieben von Dateien
git commit d5e36b2 – Hinzufügen externer Tools/Bibliotheken
- Für dieses Projekt müssen wir das Erweiterungssymbol, die VSCT-Datei und externe Tools in unseren neuen Ordner
ImageOptimizer\Resourcesverschieben. Kopieren Sie sie in den freigegebenen Ordner, und entfernen Sie sie aus dem VSIX-Projekt. - Sie werden als verknüpfte Elemente hinzugefügt, und falls Elemente bereits verknüpft sind, können sie unverändert bleiben (z. B. Lizenz).
- Überprüfen Sie, ob die Buildaktion und andere Eigenschaften in den hinzugefügten verknüpften Dateien ordnungsgemäß festgelegt werden, indem Sie jedes auswählen und das Eigenschaftentoolfenster überprüfen. Für unser Projekt mussten wir Folgendes festlegen:
Legen Sie den Buildvorgang für
icon.pngaufContentund die Option „In VSIX einbeziehen“ auftruefest.Legen Sie den Buildvorgang für
ImageOptimizer.vsctaufVSCTComplileund die Option „In VSIX einbeziehen“ auffalsefest.Legen Sie den Buildvorgang für alle Dateien unter
Resources\ToolsaufContentund die Option „In VSIX einbeziehen“ auftruefest.
Darüber hinaus ist
ImageOptimizer.cseine Abhängigkeit vonImageOptimizer.vsct, für die wir diese Abhängigkeit manuell zur csproj-Datei hinzufügen müssen:- <Content Include="..\SharedFiles\ImageOptimizer.vsct"> - <Link>ImageOptimizer.vsct</Link> - </Content> - <Compile Include="..\SharedFiles\ImageOptimizer.cs"> - <Link>ImageOptimizer.cs</Link> - </Compile> + <VSCTCompile Include="..\SharedFiles\ImageOptimizer.vsct"> + <ResourceName>Menus.ctmenu</ResourceName> + <Generator>VsctGenerator</Generator> + <LastGenOutput>..\SharedFiles\ImageOptimizer.cs</LastGenOutput> + </VSCTCompile> + <Compile Include="..\SharedFiles\ImageOptimizer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>..\SharedFiles\ImageOptimizer.vsct</DependentUpon> + </Compile>Wenn das Eigenschaftentoolfenster verhindert, dass Sie eine bestimmte Buildaktion festlegen, können Sie das csproj manuell wie oben ändern und die Buildaktion bei Bedarf festlegen.
- Für dieses Projekt müssen wir das Erweiterungssymbol, die VSCT-Datei und externe Tools in unseren neuen Ordner
Erstellen Sie Ihr Projekt, um Ihre Änderungen zu überprüfen und Fehler/Probleme zu beheben. Überprüfen Sie den Abschnitt Häufig gestellte Fragen auf häufige Probleme.
Schritt 3 : Hinzufügen eines Visual Studio 2022 VSIX-Projekts
Weitere Informationen hierzu finden Sie unter Hinzufügen eines Visual Studio 2022-Ziels.
Fügen Sie Ihrer Lösung ein neues VSIX-Projekt hinzu.
Entfernen Sie zusätzlichen Quellcode im neuen Projekt mit Ausnahme von
source.extension.vsixmanifest.
Fügen Sie Ihrem freigegebenen Projekt einen Verweis hinzu.
Fügen Sie die verknüpften Dateien aus Ihrem Visual Studio 2019 VSIX-Projekt hinzu, und überprüfen Sie, ob die Eigenschaften "Buildaktion" und "In VSIX einschließen" übereinstimmen. Kopieren Sie auch ihre
source.extension.vsixmanifest-Datei, wir ändern sie später, um Visual Studio 2022 zu unterstützen.
Ein versuchter Build zeigt, dass ein Verweis auf
System.Windows.Formsfehlt. Fügen Sie es einfach zu unserem Visual Studio 2022-Projekt hinzu und erstellen Sie es neu.+ <Reference Include="System.Windows.Forms" />Aktualisieren
Microsoft.VisualStudio.SDKundMicrosoft.VSSDK.BuildToolsPaketverweise auf die Visual Studio 2022-Versionen.Anmerkung
Dies sind die neuesten Versionen, die beim Erstellen dieses Handbuchs verfügbar sind. Es wird empfohlen, die neuesten Verfügbaren Versionen zu erhalten.
-<PackageReference Include="Microsoft.VisualStudio.SDK" Version="16.0.206" /> +<PackageReference Include="Microsoft.VisualStudio.SDK" Version="17.0.0-preview-1-31216-1036" /> -<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.10.32" /> +<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.0.63-Visual Studio 2022-g3f11f5ab" />Bearbeiten Sie Ihre
source.extension.vsixmanifestDatei, um die Zielbestimmung von Visual Studio 2022 widerzuspiegeln.Legen Sie das
<InstallationTarget>-Tag so fest, dass es Visual Studio 2022 wiedergibt, und geben Sie eine amd64-Nutzlast an:<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)"> <ProductArchitecture>amd64</ProductArchitecture> </InstallationTarget>Ändern Sie die Voraussetzung so, dass sie nur Visual Studio 2022 und höher enthält:
- <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.0,)" DisplayName="Visual Studio core editor" /> + <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[17.0,)" DisplayName="Visual Studio core editor" />
Und wir sind fertig!
Nun werden beim Buildvorgang Visual Studio 2019- und Visual Studio 2022-VSIX-Projekte erstellt.
Weitere Beispiele
- ProPower-Tools
- PeekF1
- Ermöglicht das Einblenden in einen Webbrowser mit Hilfeinformationen über die ausgewählte Klasse/das ausgewählte Objekt.
- FixMixedTabs
- Überprüft Ihre Dokumente und ersetzt Tabstoppzeichen durch Leerzeichen oder umgekehrt
- PeekF1
Nächste Schritte
In diesem umfassenden Leitfaden erfahren Sie, wie Sie Ihre Erweiterung aktualisieren.
