Sdílet prostřednictvím


Prostředky v balíčcích VSPackage

Lokalizované prostředky můžete vkládat do nativních satelitních knihoven DLL, spravovaných satelitních knihoven DLL nebo do samotného spravovaného balíčku VSPackage.

Některé prostředky nelze vložit do balíčků VSPackage. Můžete vložit následující spravované typy:

  • Řetězce

  • Klíče pro načtení balíčku (což jsou také řetězce)

  • Ikony oken nástrojů

  • Kompilované soubory výstupu tabulky příkazů (CTO)

  • Rastrové obrázky CTO

  • Nápověda k příkazovému řádku

  • Informace o datech dialogového okna

Prostředky ve spravovaném balíčku jsou vybrány podle ID prostředku. Výjimkou je soubor CTO, který musí mít název CTMENU. Soubor CTO musí být uveden v tabulce prostředků jako byte[]. Všechny ostatní položky prostředků jsou identifikovány podle typu.

Atribut můžete použít PackageRegistrationAttribute k označení sady Visual Studio, že jsou k dispozici spravované prostředky.

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

Nastavení PackageRegistrationAttribute tímto způsobem označuje, že sada Visual Studio by měla ignorovat nespravované satelitní knihovny DLL při hledání prostředků, například pomocí LoadPackageString. Pokud visual Studio narazí na dva nebo více prostředků se stejným ID prostředku, použije první nalezený prostředek.

Příklad

Následující příklad je spravovaná reprezentace ikony okna nástroje.

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

Následující příklad ukazuje, jak vložit pole bajtů CTO, které musí mít název CTMENU.

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

Poznámky k implementaci

Visual Studio zpožďuje načítání balíčků VSPackage, kdykoli je to možné. Důsledkem vložení souboru CTO do balíčku VSPackage je, že Sada Visual Studio musí během instalace načíst všechny takové balíčky VSPackage v paměti, což je při sestavení sloučené tabulky příkazů. Prostředky je možné extrahovat z balíčku VSPackage prozkoumáním metadat bez spuštění kódu v balíčku VSPackage. Balíček VSPackage není v tuto chvíli inicializován, takže ztráta výkonu je minimální.

Když Sada Visual Studio po instalaci požádá o prostředek z balíčku VSPackage, bude pravděpodobně již načten a inicializován, takže ztráta výkonu je minimální.