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
Risorse localizzate in applicazioni MFC: DLL satellite