Partager via


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

chargement VSPackages

Ressources localisées dans des applications MFC : DLL satellites

Autres ressources

VSPackages managé

VSPackages managé