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.

git commit e052465

Nejprve aktualizujeme projekt VSIX a projekt jednotkových testů na .NET 4.7.2 v nastavení vlastností projektů.

zvýšení verze rámce

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.

  1. Přidání nového sdíleného projektu do řešení

    git commit abf249d

    Přidat sdílený projekt

  2. Přidejte do projektu VSIX odkaz na sdílený projekt.

    git commit e8e941e

    Přidání odkazu na sdílený projekt

  3. 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

    git commit f31f051

    Přesunutí souborů do sdíleného projektu

  4. 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ňujtesource.extension.vsixmanifest.

    Git commit 73ba920 – Přesunout soubory

    potvrzení gitu d5e36b2 – přidání externích nástrojů/knihoven

    1. 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.
    2. 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).
    3. 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 na Content a označte možnost Zahrnout do VSIX na true

      • Nastavte akci sestavení ImageOptimizer.vsct na VSCTComplile a zahrňte do VSIX false

      • Nastavte všechny akce sestavení souborů v části Resources\Tools na Content a označte možnost Zahrnout do VSIX na true

        Přidání propojených souborů do projektu VSIX

      • Kromě toho ImageOptimizer.cs je závislost ImageOptimizer.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í.

  5. 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.

  1. Přidejte do svého řešení nový projekt VSIX.

  2. Odstraňte jakýkoli další zdrojový kód v novém projektu s výjimkou source.extension.vsixmanifest.

    vytvoření nového projektu VSIX

  3. Přidejte odkaz na sdílený projekt.

    git commit dd49cb2

    Přidání odkazu na sdílený projekt

  4. 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.

    git commit 98c43ee

    přidání propojených souborů do projektu VSIX

  5. 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.

    git commit de71ccd

    + <Reference Include="System.Windows.Forms" />
    
  6. Upgradujte odkazy na balíčky Microsoft.VisualStudio.SDK a Microsoft.VSSDK.BuildTools na verze sady Visual Studio 2022.

    git commit d581fc3

    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" />
    
  7. Upravte soubor source.extension.vsixmanifest tak, aby odrážel cílení na Visual Studio 2022.

    potvrzení Gitu 9d393c7

    1. 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>
      
    2. 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.

Další kroky

Připravte se na aktualizaci rozšíření přečtením této kompletní příručky.