Aracılığıyla paylaş


ImageOptimizer - Visual Studio uzantısını adım adım güncelleştirme

Bu kılavuz, örnek olay incelemesi olarak Görüntü İyileştirici uzantısını kullanarak Visual Studio 2019 desteğini korurken Visual Studio 2022 desteği eklemek için gereken tüm adımları gösterir.
Bu, her adıma yönelik git işlem bağlantılarına sahip kapsamlı bir kılavuz olarak tasarlanmıştır, ancak burada nihai hale getirilmiş pull request'i görebilirsiniz: https://github.com/madskristensen/ImageOptimizer/pull/46.

Ayrıca bu kılavuzun sonunda ek örnekler.

1. Adım - Projeyi modernleştirme

Modernleştirme bölümü kapsamındaki proje'e bakın.

git commit e052465

İlk olarak VSIX ve birim testi projesini projelerin özellikler sayfasının altında .NET 4.7.2'ye yükselteceğiz:

Framework sürüm artırımı

Görüntü İyileştirici bazı eski özel 14.* ve 15.* paketlerine başvuruda bulundu, bunun yerine tüm gerekli başvurularımızı bir araya getirerek Microsoft.VisualStudio.Sdk NuGet paketini yükleyeceğiz.

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

Projeyi oluşturma başarılı olur ve birkaç iş parçacığı oluşturma uyarısı alırsınız. ctrl ve .'e tıkladıktan sonra eksik iş parçacığı değiştirme satırlarını eklemek için intellisense'i kullanarak bu uyarıları düzeltiriz.

2. Adım - Kaynak kodunu paylaşılan bir projede yeniden düzenleme

Bkz. Paylaşılan projeler.

Visual Studio 2022'yi desteklemek için, Visual Studio 2019 ile Visual Studio 2022 VSIX projeleri arasında paylaşılacak olan uzantının kaynak kodunu içerecek yeni bir paylaşılan proje eklenmesi gerekir.

  1. Çözümünüze yeni bir paylaşılan proje ekleme

    git commit abf249d

    Paylaşılan proje ekleme

  2. Paylaşılan projeyi VSIX projenize ekleyin.

    git commit e8e941e

    Paylaşılan proje başvurusu ekleme

  3. Kaynak kod dosyalarınızı (cs, xaml, resx) dışında, aşağıdakiler için yeni paylaşılan proje'a taşıyın:

    • source.extension.vsixmanifest
    • Uzantı meta veri dosyaları (simgeler, lisanslar, sürüm notları vb.)
    • VSCT dosyaları
    • Bağlı dosyalar
    • VSIX'e eklenmesi gereken dış araçlar veya kitaplıklar

    git commit f31f051

    Dosyaları paylaşılan projeye taşıma

  4. Şimdi tüm meta verileri, VSCT dosyalarını, bağlı dosyaları ve dış araçları/kitaplıkları paylaşılan bir konuma taşıyın ve bunları VSIX projesine bağlantılı öğeler olarak geri ekleyin. kaldırma source.extension.vsixmanifest.

    git commit 73ba920 - Dosyaları taşıma

    git commit d5e36b2 - Dış araçlar/kitaplıklar ekleme

    1. Bu proje için uzantı simgesini, VSCT dosyasını ve dış araçları ImageOptimizer\Resourcesyeni klasörümüze taşımamız gerekir. Bunları paylaşılan klasöre kopyalayın ve VSIX projesinden kaldırın.
    2. Bunları bağlantılı öğeler olarak geri ekledik ve öğeler zaten bağlantılı öğelerse oldukları gibi kalabilir (örneğin lisans).
    3. Eklenen bağlantılı dosyalarda Derleme Eylemi'nin ve diğer özelliklerin doğru ayarlandığını doğrulamak için her birini seçin ve özellikler araç penceresini denetleyin. Projemiz için aşağıdakileri ayarlamamız gerekiyordu:
      • icon.png Derleme Eylemini Content olarak ayarlayın ve VSIX'e Ekle seçeneğini true olarak işaretleyin

      • ImageOptimizer.vsct Derleme Eylemini VSCTComplile olarak ve VSIX'e Eklemeyi false olarak ayarlayın

      • Resources\Tools altındaki dosyaların tüm Derleme Eylemini Content olarak ayarlayın ve VSIX'e Ekle seçeneğini true olarak işaretleyin

        VSIX projesine bağlı dosyalar ekleme

      • Ayrıca, ImageOptimizer.csImageOptimizer.vsctbağımlılığıdır. Bunun için bu bağımlılığı csproj dosyasına el ile eklemeliyiz:

        - <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>
        
      • Özellikler araç penceresi belirli bir Derleme Eylemini ayarlamanızı engelliyorsa, yukarıda olduğu gibi csproj'da el ile değişiklik yapabilir ve Derleme Eylemi'ni gerektiği gibi ayarlayabilirsiniz.

  5. Değişikliklerinizi doğrulamak ve tüm hataları/sorunları düzeltmek için projenizi oluşturun. Yaygın sorunlar için Sık Sorulan Sorular bölümüne bakın.

3. Adım - Visual Studio 2022 VSIX projesi ekleme

Bkz. , Visual Studio 2022 hedefiekle.

  1. Çözümünüz için yeni bir VSIX projesi ekleyin.

  2. source.extension.vsixmanifest. dışında yeni projedeki ek kaynak kodlarını kaldırma

    Yeni bir VSIX proje oluşturma

  3. Paylaşılan projenize bir referans ekleyin.

    git commit dd49cb2

    Paylaşılan projeye referans ekle

  4. Visual Studio 2019 VSIX projenizden bağlantılı dosyaları ekleyin ve "Derleme Eylemi" ve "VSIX'e Ekle" özelliklerinin eşleşip eşleşmediğini doğrulayın. Ayrıca source.extension.vsixmanifest dosyanızın üzerine de kopyalayın, daha sonra Visual Studio 2022'yi destekleyecek şekilde değiştireceğiz.

    git commit 98c43ee

    VSIX projesine bağlı dosyalar ekleyin

  5. Bir derleme denemesi, System.Windows.Formsreferansının eksik olduğunu gösteriyor. Visual Studio 2022 projemize eklemeniz ve yeniden derlemeniz yeterlidir.

    git commit de71ccd

    + <Reference Include="System.Windows.Forms" />
    
  6. Microsoft.VisualStudio.SDK ve Microsoft.VSSDK.BuildTools paketi başvurularını Visual Studio 2022 sürümlerine güncelleyin.

    git commit d581fc3

    Not

    Bunlar, bu kılavuz oluşturulduğunda kullanılabilen en son sürümlerdir. En son sürümleri edinmeniz önerilir.

    -<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. source.extension.vsixmanifest dosyanızı Visual Studio 2022'yi hedeflemeyi yansıtacak şekilde düzenleyin.

    git commit 9d393c7

    1. <InstallationTarget> etiketini Visual Studio 2022'yi yansıtacak şekilde ayarlayın ve bir amd64 yükü belirtin:

      <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
          <ProductArchitecture>amd64</ProductArchitecture>
      </InstallationTarget>
      
    2. Önkoşulu yalnızca Visual Studio 2022 ve üzerini içerecek şekilde değiştirin:

      - <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" />
      

Ve işimiz bitti!

Bununla, derleme artık hem Visual Studio 2019 hem de Visual Studio 2022 VSIX'leri üretmektedir.

Diğer örnekler

  • ProPower Araçları
    • PeekF1
      • Seçili sınıf/nesne hakkında yardım bilgileriyle bir web tarayıcısına göz atma olanağı sağlar.
    • Karma Sekmeleri Düzeltme
      • Belgelerinizi tarar ve sekmeleri boşluklarla değiştirir veya tam tersi

Sonraki adımlar

Uzantınızı güncellemeye hazırlanın, bunun için bu başlangıç-bitiş kılavuzunu okuyun.