Ressources dans les VSPackages managé
Kit de développement logiciel Visual Studio est conçu pour arrêter l'ère les DLL satellites natifs (UI) d'interface utilisateur en faisant des ressources managées décrivant la création d'un VSPackage. Vous pouvez inclure des ressources localisées dans DLL natifs du satellite interface utilisateur, DLL satellites managées, ou dans un VSPackage managé lui-même.
Certaines ressources ne peuvent pas être incorporées dans les VSPackages. les types managés suivants peuvent être incorporés :
Chaînes
Poussoirs de chargement de package (qui sont également des chaînes)
Icônes de la fenêtre Outil
fichiers de sortie de Tableau compilé (CTO) de commande
bitmap de CTO
Utilisation de ligne de commande
Sur les données contenues dans la boîte de dialogue
Des ressources dans un package managé sont activées par ID de ressource une exception est le fichier de CTO, qui doit être nommé CTMENU. Le fichier de CTO doit s'afficher dans le tableau de ressource comme byte[]. Tous les autres éléments de ressource sont identifiés par le type.
Vous pouvez utiliser l'attribut d' PackageRegistrationAttribute pour indiquer à Visual Studio que les ressources managées sont disponibles.
<PackageRegistration(UseManagedResourcesOnly:=True)>
Public NotInheritable Class MyPackage
Inherits Package
[PackageRegistration(UseManagedResourcesOnly = true)]
public sealed class MyPackage : Package
Le paramètre indique PackageRegistrationAttribute de cette manière que Visual Studio doit ignorer les DLL non managées de satellite lors de la recherche de ressources, par exemple, à l'aide de LoadPackageString. Si Visual Studio rencontre deux ressources ou plus qui ont le même ID de ressource, il utilise la première ressource qu'il trouve.
Exemple
L'exemple suivant est une représentation managée d'une icône de la fenêtre Outil.
<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>
l'exemple suivant montre comment inclure le tableau d'octets de CTO, qui doit être nommé 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>
remarques d'implémentation
charger de délais deVisual Studio de VSPackages autant que possible. Une conséquence d'incorporer un fichier de CTO dans un VSPackage est que Visual Studio doit charger tout un tel VSPackages en mémoire pendant l'installation, qui est lorsqu'il génère un tableau fusionné de commande. Les ressources peuvent être extraites d'un VSPackage en examinant les métadonnées sans exécuter le code dans le VSPackage. Le VSPackage n'est pas initialisé à ce stade, la perte de performances est minime.
Lorsque Visual Studio demande une ressource d'un VSPackage après l'installation, ce package est susceptible d'être déjà chargé et initialisé, donc la perte de performances est minime.
Voir aussi
Concepts
Ressources localisées dans des applications MFC : DLL satellites