Exemplarische Vorgehensweise: Erstellen von verwalteten Satelliten-DLLs

Add_Ins sind in vs_dev12 veraltet. Es wird empfohlen, für Ihre Add-Ins ein Upgrade auf VSPackage-Erweiterungen durchführen. Weitere Informationen zum Durchführen eines Upgrades finden Sie unter FAQ: Konvertieren von Add-Ins in VSPackage-Erweiterungen.

Satelliten-DLLs sind hilfreich, um Ressourcendateien, wie Symbole, Bitmaps und Ressourcenzeichenfolgen, an einem zentralen Ort zu speichern, wo sie von Add-Ins und anderen Automatisierungsprojekten verwendet werden können. Satelliten-DLLs können in anderen Projekten oder Add-Ins wiederverwendet werden. Wenn Sie Zeichenfolgen und andere Ressourcen getrennt vom Add-In verwalten, ist es außerdem einfacher, zentrale Änderungen auszuführen oder Ressourcen in andere Sprachen zu lokalisieren.

In älteren Versionen von Visual Studio wurden Registrierungseinträge für "SatelliteDllPath" und "SatelliteDllName" verwendet. Registrierungseinträge werden jetzt jedoch durch Einträge in der ADDIN-Registrierungsdatei außer Kraft gesetzt. Wenn Sie in einem Projekt eine Ressource benötigen, laden Sie das Add-In, woraufhin Visual Studio dieses nach der Satelliten-DLL abfragt. Aus diesem Grund ist für einen Ressourcenpfad keine Hartcodierung erforderlich. Anstatt eine Ressourcen-ID mithilfe der #id-Methode anzugeben, können Sie außerdem "@resource name" verwenden (wobei resource name für den Namen der Ressource steht, zum Beispiel "@Icon1" oder "@String1"). Durch das @-Symbol wird Visual Studio angewiesen, in der Satelliten-DLL nach der Ressource zu suchen.

Erstellen verwalteter Satelliten-DLLs

Die folgenden Schritte zeigen, wie Sie eine Satelliten-DLL erstellen, die Symbol- und Zeichenfolgenressourcen enthält, und wie Sie ein Add-In ändern, um auf diese Ressourcen zuzugreifen. Im Verfahren wird ein Add-In mit einem Dialogfeld Info verwendet, das Symbol- und Zeichenfolgenressourcen erfordert. Wenn Sie ein Add-In erstellen, das über ein Dialogfeld Info verfügt, wird normalerweise ein Standardsymbol und Text bereitgestellt. Die folgenden Schritte zeigen auch, wie Sie das Standardsymbol und den Text durch eigene Elemente ersetzen.

So erstellen Sie eine verwaltete Satelliten-DLL

  1. Klicken Sie im Menü Datei auf Neu und dann auf Projekt.

  2. Erweitern Sie im Dialogfeld Neues Projekt den Knoten Andere Projekttypen, und wählen Sie dann Erweiterungsprojekte aus.

  3. Wählen Sie im Bereich Vorlagen die Option Add-In für Visual Studio aus.

  4. Befolgen Sie die Anweisungen des Visual Studio-Add-In-Assistenten. Aktivieren Sie auf der Seite Auswählen der Informationen unter "Info" im Hilfemenü die Option Ja, mein Add-In soll Informationen im Info-Dialogfeld anzeigen. Behalten Sie die restliche Standardauswahl bei.

  5. Klicken Sie im Menü Projekt auf Verweis hinzufügen.

  6. Klicken Sie auf der Registerkarte .NET auf System.Drawing und dann auf OK.

  7. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Add-In-Projekt, klicken Sie auf Hinzufügen, und klicken Sie dann auf Neues Element.

  8. Wählen Sie in der Liste "Vorlagen" den Eintrag Ressourcendatei aus, und klicken Sie auf Hinzufügen. Übernehmen Sie den Standardnamen (Resources1.resx).

    Standardmäßig wird eine Ressourcendatei mit dem Namen "Resource1.resx" erstellt und der Ressourcen-Editor von Visual Studio gestartet.

  9. Wählen Sie in "Resource1.resx" in der Liste Zeichenfolgen die Option Symbole aus (Schaltfläche ganz oben links).

  10. Klicken Sie in der Liste Ressource hinzufügen auf Neues Symbol hinzufügen. Behalten Sie vorerst den Standardnamen (Icon1.bmp) bei, und klicken Sie auf Hinzufügen.

    Alternativ dazu können Sie ein vorhandenes Bitmapbild für das Symbol auswählen, sofern es eine Auflösung von 16 x 16 Pixel und die Farbeinstellung 16 Farben oder True Color hat.

  11. Nachdem das Symbol im Symbol-Editor geöffnet wurde, bearbeiten Sie es mit den entsprechenden Tools. Sobald Sie fertig sind, schließen Sie den Symbol-Editor und speichern die Änderungen.

  12. Wählen Sie in der Liste Ressource hinzufügen die Option Neue Zeichenfolge hinzufügen aus.

  13. Klicken Sie in der Spalte Name auf das erste Feld.

    Es wird eine standardmäßige Zeichenfolgenressource mit dem Namen "String1" erstellt.

  14. Geben Sie Line one im Feld Wert ein.

    Dies ist der Wert für die erste Zeichenfolgenressource.

  15. Erstellen Sie zwei weitere Zeichenfolgenressourcen mit den Namen "Line two" und "Line three".

  16. Schließen Sie den Ressourcen-Editor, und speichern Sie die Änderungen.

  17. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "Resource1.resx", und klicken Sie auf Eigenschaften.

  18. Ändern Sie im Eigenschaftenfenster den Wert für Buildvorgang von Eingebettete Ressource in Keine.

    Dadurch wird verhindert, dass die Ressource in die Add-In-Assembly integriert wird.

  19. Erstellen Sie das Projekt.

  20. Erstellen Sie die Satellitenressourcen-DLL. Das Erstellen der Satelliten-DLL gliedert sich in zwei Schritte: Zuerst verwenden Sie "ResGen" und dann "AL" (Assembly Linker).

    1. Klicken Sie auf Start und dann nacheinander auf Alle Programme, Microsoft Visual Studio 2010, Visual Studio Tools und Microsoft Visual Studio-Eingabeaufforderung (2010).

      Dadurch werden bestimmte Umgebungsvariablen festgelegt, damit Sie leichter auf Visual Studio-Tools verweisen können.

    2. Wechseln Sie an der Eingabeaufforderung in den Ordner, der die RESX-Datei enthält, und geben Sie Resgen Resource1.resx ein.

      Resgen ist ein Dienstprogramm, das die angegebene RESX-Datei in eine RESOURCES-Datei kompiliert. Weitere Informationen finden Sie unter Resgen.exe (Resource File Generator).

    3. Geben Sie an der Eingabeaufforderung AL.exe /embed:Resource1.resources /culture:en-US /out:Add-In Name.resources.dll ein.

      Ersetzen Sie Add-In Name durch den Namen des jeweiligen Add-Ins. Wenn das Add-In-Projekt z. B. den Namen "MyAddin" hat, lautet der /out:-Schalter /out:MyAddin.resources.dll. Der /out:-Name muss mit dem Namen des Projekts übereinstimmen. Andernfalls wird die Ressourcen-DLL nicht gefunden.

      "AL.exe" (Assemblylinker) konvertiert die angegebene RESOURCES-Datei in eine DLL, auf die Sie im Add-In verweisen können. (Sie können den /culture-Schalter auf eine andere Sprache als Englisch setzen.) Weitere Informationen finden Sie unter Al.exe (Assembly Linker-Tool).

  21. Greifen Sie im Datei-Explorer auf das DLL-Verzeichnis des Add-Ins zu, und erstellen Sie einen Ordner mit dem Namen "\en-US\" (das Gebietsschema "Englisch (USA)" wird verwendet, weil Sie in "AL.exe" als Kulturwert "en-US" eingegeben haben).

  22. Kopieren Sie die Datei "Add-In Name.resources.dll" in den neuen Ordner "\en-US\".

  23. Navigieren Sie im Datei-Explorer zum Verzeichnis "\Addins\", normalerweise "..\Dokumente und Einstellungen\user name\Eigene Dateien\Visual Studio 2010\Addins\".

  24. Ändern Sie die Definitionsdatei des Visual Studio-Add-Ins wie folgt:

    1. Klicken Sie mit der rechten Maustaste auf die Definitionsdatei für das Add-In, klicken Sie auf Öffnen mit, und klicken Sie auf Editor.

    2. Ersetzen Sie die folgenden Tags:

          <FriendlyName>@String1</FriendlyName>
          <Description>@String2</Description>
          <AboutBoxDetails>@String3</AboutBoxDetails>
          <AboutIconData>@Icon1</AboutIconData>
      

      Durch den Friendlyname-Eintrag wird das Add-In in Line1 umbenannt. Diesen Namen haben Sie in der Datei Resource1.resx für String1 eingegeben. Die Beschreibung im Dialogfeld Info enthält jetzt "Line2", und der AboutIconData-Eintrag entspricht dem Symbol, das Sie für das Dialogfeld Info erstellt haben.

    3. Fügen Sie vor der Erweiterung des Assemblynamens ".resources" ein.

  25. Erstellen Sie das Projekt neu, und wählen Sie das Add-In im Add-In-Manager aus.

  26. Klicken Sie im Menü Hilfe auf Info, und wählen Sie in der Liste Line1 (den Namen des Add-Ins) aus.

    Das benutzerdefinierte Symbol und die drei erstellten Zeichenfolgen werden angezeigt.

Siehe auch

Aufgaben

Gewusst wie: Zugreifen auf Ressourcen in Satelliten-DLLs

Konzepte

Add-In-Registrierung