Condividi tramite


Risorse in Vspackage gestito

Visual Studio SDK è progettato per terminare l'era di DLL satellite nativi (UI) dell'interfaccia utente rendendo disponibili le risorse gestite per la creazione di package VS. È possibile includere risorse localizzate nelle DLL satellite nativi dell'interfaccia utente, DLL satellite gestite, o in un VSPackage gestito stesso.

Alcune risorse non possono essere incorporate in Vspackage. i seguenti tipi gestiti possono essere incorporati:

  • Stringhe

  • Chiavi di caricamento del pacchetto (che sono anche le stringhe)

  • Icone della finestra degli strumenti

  • File di output compilati della Tabella dei comandi (CTO)

  • bitmap di CTO

  • Guida della riga di comando

  • Sui dati della finestra di dialogo

Le risorse in un pacchetto gestito vengono selezionate dall'ID delle risorse Un'eccezione rappresenta il file di CTO, che deve essere denominato CTMENU. Il file di CTO deve essere visualizzato nella tabella delle risorse come byte[]. Tutti gli altri elementi di risorsa sono identificati da tipo.

È possibile utilizzare l'attributo di PackageRegistrationAttribute per indicare a Visual Studio che le risorse gestite sono disponibili.

<PackageRegistration(UseManagedResourcesOnly:=True)>
Public NotInheritable Class MyPackage
    Inherits Package
[PackageRegistration(UseManagedResourcesOnly = true)]
public sealed class MyPackage : Package

L'impostazione PackageRegistrationAttribute in questo modo si indica che Visual Studio deve ignorare le DLL satellite non gestiti per la ricerca di risorse, ad esempio, utilizzando LoadPackageString. Se Visual Studio rileva due o più risorse con lo stesso ID di risorsa, viene utilizzata la prima risorsa rilevati.

Esempio

L'esempio seguente è una rappresentazione gestita dell'icona di una finestra degli strumenti.

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

Nell'esempio seguente viene illustrato come importare la matrice di byte di CTO, che deve essere denominata 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>

note di implementazione

carico di ritardi diVisual Studio di package VS quando possibile. Una conseguenza di incorporare un file di CTO in un VSPackage è che Visual Studio necessario caricare qualsiasi tale Vspackage in memoria durante l'installazione, ovvero quando compila una tabella di unione di comando. Le risorse possono essere estratte da un VSPackage individuazione dei metadati senza eseguire il codice in un VSPackage. Il package VS non viene inizializzato attualmente, la riduzione delle prestazioni è minima.

Quando Visual Studio richiede una risorsa da un VSPackage dopo l'installazione, il pacchetto potrebbe essere già caricato e inizializzato, pertanto la riduzione delle prestazioni è minima.

Vedere anche

Concetti

Caricamento package VS.

Risorse localizzate in applicazioni MFC: DLL satellite

Altre risorse

Vspackage gestito

Vspackage gestito