ImageOptimizer – krok za krokem aktualizace rozšíření sady Visual Studio
Tato příručka zobrazí všechny kroky potřebné k přidání podpory sady Visual Studio 2022 při zachování podpory sady Visual Studio 2019 pomocí rozšíření Optimalizace obrázků jako případové studie.
Jedná se o důkladnou příručku s odkazy na potvrzení Gitu na jednotlivé kroky, ale můžete se zde podívat na dokončenou žádost o přijetí změn: https://github.com/madskristensen/ImageOptimizer/pull/46.
Na konci této příručky máme také další ukázky .
Krok 1 – modernizace projektu
Viz Modernizace projektu.
Nejprve narazíme na projekt VSIX a testování jednotek na .NET 4.7.2 na stránce vlastností projektů:
Nástroj Pro optimalizaci obrázků odkazoval na některé staré vlastní balíčky 14.* a 15.* místo toho nainstalujeme Microsoft.VisualStudio.Sdk
balíček NuGet, který slučuje všechny požadované odkazy.
- <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>
Sestavení projektu proběhne úspěšně a zobrazí se několik upozornění na podprocesy. Tato upozornění opravíme kliknutím ctrl
a .
použitím technologie IntelliSense přidáme chybějící řádky přepínání vláken.
Krok 2 : Refaktoring zdrojového kódu do sdíleného projektu
Viz Sdílené projekty.
Podpora sady Visual Studio 2022 vyžaduje přidání nového sdíleného projektu, který bude obsahovat zdrojový kód rozšíření, který se bude sdílet mezi projekty Visual Studio 2019 a Visual Studio 2022 VSIX.
Přidání nového sdíleného projektu do řešení
Přidejte do projektu VSIX odkaz na sdílený projekt.
Přesuňte soubory zdrojového kódu (cs, xaml, resx) do nového sdíleného projektu s výjimkou následujících:
source.extension.vsixmanifest
- Soubory metadat rozšíření (ikony, licence, poznámky k verzi atd.)
- Soubory VSCT
- Propojené soubory
- Externí nástroje nebo knihovny, které je potřeba zahrnout do VSIX
Teď přesuňte všechna metadata, soubory VSCT, propojené soubory a externí nástroje/knihovny do sdíleného umístění a přidejte je zpět jako propojené položky do projektu VSIX. Neodstraňujte
source.extension.vsixmanifest
.git commit 73ba920 – Přesouvání souborů
git commit d5e36b2 – přidání externích nástrojů/knihoven
- Pro tento projekt potřebujeme přesunout ikonu rozšíření, soubor VSCT a externí nástroje do nové složky
ImageOptimizer\Resources
. Zkopírujte je do sdílené složky a odeberte je z projektu VSIX. - Přidali jste je zpátky jako propojené položky a pokud už jsou propojené položky, můžou zůstat tak, jak jsou (například licence).
- Ověřte, zda jsou v přidaných propojených souborech správně nastaveny akce sestavení a další vlastnosti, a to tak, že vyberete každou z nich a zkontrolujete okno nástroje vlastnosti. Pro náš projekt jsme museli nastavit následující:
Nastavte
icon.png
akci sestavení naContent
možnost Zahrnout do VSIX a označte ji natrue
Nastavení
ImageOptimizer.vsct
akce sestavení naVSCTComplile
hodnotu a zahrnutí do VSIX nafalse
Nastavte všechny akce sestavení souborů v části
Resources\Tools
Zahrnout doContent
VSIX a nastavte natrue
Kromě toho
ImageOptimizer.cs
je závislostImageOptimizer.vsct
, pro to musíme ručně přidat tuto závislost do souboru csproj:- <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>
Pokud vám okno nástroje vlastnosti brání v nastavení konkrétní akce sestavení, můžete soubor csproj upravit ručně podle výše uvedeného postupu a podle potřeby nastavit akci sestavení.
- Pro tento projekt potřebujeme přesunout ikonu rozšíření, soubor VSCT a externí nástroje do nové složky
Sestavte projekt, abyste ověřili změny a opravili případné chyby nebo problémy. Běžné problémy najdete v části Nejčastější dotazy .
Krok 3 : Přidání projektu Visual Studio 2022 VSIX
Viz Přidání cíle sady Visual Studio 2022.
Přidejte do svého řešení nový projekt VSIX.
Odebrání dalšího zdrojového kódu v novém projektu s výjimkou
source.extension.vsixmanifest.
Přidejte odkaz na sdílený projekt.
Přidejte propojené soubory z projektu VSIX sady Visual Studio 2019 a ověřte, že jejich vlastnosti "Akce sestavení" a "Zahrnout do VSIX" odpovídají. Soubor také zkopírujeme
source.extension.vsixmanifest
, později ho upravíme tak, aby podporoval Visual Studio 2022.Pokus o sestavení ukazuje, že chybí odkaz na
System.Windows.Forms
. Jednoduše ho přidejte do projektu sady Visual Studio 2022 a znovu sestavte.+ <Reference Include="System.Windows.Forms" />
Upgradujte a
Microsoft.VSSDK.BuildTools
zabalteMicrosoft.VisualStudio.SDK
odkazy na verze sady Visual Studio 2022.Poznámka:
Toto jsou nejnovější verze, které jsou k dispozici při vytváření této příručky. Doporučujeme získat nejnovější dostupné verze.
-<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" />
Upravte
source.extension.vsixmanifest
soubor tak, aby odrážel cílení na Visual Studio 2022.<InstallationTarget>
Nastavte značku tak, aby odrážela Visual Studio 2022 a označte datovou část amd64:<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)"> <ProductArchitecture>amd64</ProductArchitecture> </InstallationTarget>
Upravte požadavek tak, aby zahrnoval pouze Visual Studio 2022 a vyšší:
- <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" />
A my jsme hotovi!
Díky tomu teď sestavování vytváří visual Studio 2019 i visual Studio 2022 VSIX.
Další ukázky
- ProPower Tools
- PeekF1
- Umožňuje náhled do webového prohlížeče s informacemi o vybrané třídě nebo objektu.
- FixMixedTabs
- Prohledá dokumenty a nahradí karty mezerami nebo naopak.
- PeekF1
Další kroky
Připravte se na aktualizaci rozšíření v tomto úvodním průvodci.