Freigeben über


Ressourcen im verwalteten VSPackages

Visual Studio SDK wurde entworfen, um abzuschließen der Zeitraum der Benutzeroberfläche des Satelliten systemeigenen DLL-Dateien, indem verwaltete Ressourcen für VSPackage-Erstellen bereitstellt. Sie können lokalisierte Ressourcen im systemeigenen DLLs Benutzeroberfläche Satelliten, verwalteter Satelliten-DLLs oder in verwalteten VSPackages selbst einbetten.

Einige Ressourcen können nicht in VSPackages eingebettet sind. Die folgenden verwalteten Typen eingebettet werden können:

  • Zeichenfolgen

  • Paketladeschlüssel (die ebenfalls Zeichenfolgen)

  • Symbole Toolfenster

  • Kompilierte Dateien der Befehls-Tabellen-Ausgabe (CTO)

  • Cto-Bitmaps

  • Befehlszeilen-Hilfe

  • Über Dialogfeld Testdaten

Ressourcen in einem verwalteten Pakete werden durch Ressource ausgewählt. Eine Ausnahme ist die CTO-Datei, die CTMENU genannt werden muss. Die cto-Datei muss in der Ressourcendatei byte[]als Tabelle angezeigt werden. Alle anderen Ressourcenelemente werden durch den Typ bezeichnet.

Sie können das PackageRegistrationAttribute-Attribut verwenden, um zu Visual Studio anzugeben, dass das verwaltete Ressourcen verfügbar sind.

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

Auf diese Weise PackageRegistrationAttribute Einstellung gibt an, dass Visual Studio nicht verwaltete Satelliten-DLL ignorieren soll, wenn er nach Ressourcen durchsucht, z. B. mithilfe LoadPackageStringverwendet. Wenn Visual Studio auf zwei oder mehr Ressourcen, die dieselben Ressourcen-ID haben, verwendet sie die erste Ressource, die gesucht werden soll.

Beispiel

Im folgenden Beispiel ist eine verwaltete Darstellung eines Symbols für das Toolfenster.

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

Im folgenden Beispiel wird veranschaulicht, wie das CTO-Bytearray einbetten, das CTMENU benannt werden muss.

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

Implementierungs-Hinweise

Visual Studio für verzögertes Laden von VSPackages, wann immer dies möglich ist. Eine Folge des Einbettens einer CTO-Datei in einem VSPackage ist, dass alle Visual Studio VSPackages während des Setups im Arbeitsspeicher geladen werden muss, z. B. Dies ist, wenn es sich um eine zusammengeführte Tabelle Befehls erstellt. Ressourcen können von VSPackages extrahiert werden, indem die Metadaten ohne die Ausführung von Code in einem VSPackage überprüft. VSPackage wird derzeit nicht initialisiert. Daher ist der minimal verlust Leistung.

Wenn Visual Studio um eine Ressource von einem VSPackage ist, fordert Setup nach dieses Pakets wahrscheinlich bereits geladen und initialisiert wird. Daher ist der minimal verlust Leistung.

Siehe auch

Konzepte

Laden von VSPackages

Lokalisierte Ressourcen in MFC-Anwendungen: Satelliten-DLLs

Weitere Ressourcen

Verwaltetes VSPackages

Verwaltetes VSPackages