Aracılığıyla paylaş


VSPackage’lardaki Kaynaklar

Yerelleştirilmiş kaynakları yerel uydu UI DLL'lerine, yönetilen uydu DLL'lerine veya yönetilen bir VSPackage'a ekleyebilirsiniz.

Bazı kaynaklar VSPackage'lara eklenemez. Aşağıdaki yönetilen türler eklenebilir:

  • Dizeler

  • Paket yükleme anahtarları (aynı zamanda dizelerdir)

  • Araç penceresi simgeleri

  • Derlenmiş Komut Tablosu Çıktısı (CTO) dosyaları

  • CTO bit eşlemleri

  • Komut Satırı Yardımı

  • İletişim kutusu verileri hakkında

Yönetilen paketteki kaynaklar kaynak kimliğine göre seçilir. CTMENU olarak adlandırılması gereken CTO dosyası özel durumdur. CTO dosyası kaynak tablosunda olarak byte[]görünmelidir. Diğer tüm kaynak öğeleri türe göre tanımlanır.

Visual Studio'ya PackageRegistrationAttribute yönetilen kaynakların kullanılabilir olduğunu belirtmek için özniteliğini kullanabilirsiniz.

[PackageRegistration(UseManagedResourcesOnly = true)]
public sealed class MyPackage : Package

Bu şekilde ayarlamak PackageRegistrationAttribute , Visual Studio'yu kullanarak LoadPackageStringkaynak ararken yönetilmeyen uydu DLL'lerini yoksayması gerektiğini gösterir. Visual Studio aynı kaynak kimliğine sahip iki veya daha fazla kaynakla karşılaşırsa, bulduğu ilk kaynağı kullanır.

Örnek

Aşağıdaki örnek, bir araç penceresi simgesinin yönetilen gösterimidir.

<data name="1001"
     type="System.Resources.ResXFileRef,System.Windows.Forms">
     <value>
     MyToolWinIcon.bmp;
     System.Drawing.Bitmap,
     System.Drawing,
     Version=1.0.0.0,
     Culture=neutral,
     PublicKeyToken=b03f5f7f11d50a3a
     </value>
</data>

Aşağıdaki örnekte, CTMENU olarak adlandırılması gereken CTO bayt dizisinin nasıl eklendiği gösterilmektedir.

<data name="CTMENU"
     type="System.Resources.ResXFileRef,System.Windows.Forms">
     <value>
     MyPackage.cto;
     System.Byte[],
     mscorlib,
     Version=1.0.0.0,
     Culture=neutral,
     PublicKeyToken=b03f5f7f11d50a3a
     </value>
</data>

Uygulama Notları

Visual Studio mümkün olduğunca VSPackage yüklemesini geciktirmektedir. VsPackage'a bir CTO dosyası eklemenin bir sonucu, Visual Studio'nun kurulum sırasında bu tür tüm VSPackage'ları belleğe yüklemesi gerektiğidir. Bu, birleştirilmiş bir komut tablosu oluştururken ortaya çıkar. VsPackage'da kod çalıştırmadan meta veriler incelenerek bir VSPackage'dan kaynaklar ayıklanabilir. VSPackage şu anda başlatılmadığından performans kaybı en düşük düzeydedir.

Visual Studio, Kurulum'dan sonra bir VSPackage'dan kaynak istediğinde, bu paket büyük olasılıkla zaten yüklenmiş ve başlatılmış olabilir, bu nedenle performans kaybı en düşük düzeydedir.