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