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 pro každý krok, 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 tohoto průvodce máme také další vzorky.
Krok 1 – modernizace projektu
Viz Modernizace projektu.
Nejprve aktualizujeme projekt VSIX a projekt jednotkových testů na .NET 4.7.2 v nastavení vlastností projektů.
Nástroj Pro optimalizaci obrázků dříve odkazoval na staré vlastní balíčky verzí 14.* a 15.*, ale nyní nainstalujeme balíček NuGet Microsoft.VisualStudio.Sdk
, který konsoliduje všechny naše 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 se podaří a objeví se několik varování týkajících se vláken. Tato upozornění opravíme kliknutím na ctrl
a .
a použitím 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 pro následující:
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řesunout soubory
potvrzení gitu 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 akci sestavení
icon.png
naContent
a označte možnost Zahrnout do VSIX natrue
Nastavte akci sestavení
ImageOptimizer.vsct
naVSCTComplile
a zahrňte do VSIXfalse
Nastavte všechny akce sestavení souborů v části
Resources\Tools
naContent
a označte možnost Zahrnout do VSIX natrue
Kromě toho
ImageOptimizer.cs
je závislostImageOptimizer.vsct
, pro to musíme tuto závislost ručně přidat 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řidejte cílovou sadu Visual Studio 2022.
Přidejte do svého řešení nový projekt VSIX.
Odstraňte jakýkoli další zdrojový kód 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í. Zkopírujte také soubor
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 odkazy na balíčky
Microsoft.VisualStudio.SDK
aMicrosoft.VSSDK.BuildTools
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 soubor
source.extension.vsixmanifest
tak, aby odrážel cílení na Visual Studio 2022.Nastavte značku
<InstallationTarget>
tak, aby odrážela Visual Studio 2022 a označovala payload ve formátu 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 nyní sestavení vytváří instalační balíčky pro Visual Studio 2019 i Visual Studio 2022.
Další ukázky
-
nástroje ProPower Tools
- PeekF1
- Umožňuje náhled do webového prohlížeče s informacemi o vybrané třídě nebo objektu.
- FixMixedTabs
- Prohledá vaše dokumenty a nahradí tabulátory mezerami nebo naopak.
- PeekF1
Další kroky
Připravte se na aktualizaci rozšíření přečtením této kompletní příručky.