Share via


Hinzufügen und Bearbeiten von Ressourcen (Visual C#)

Aktualisiert: November 2007

Visual C#-Anwendungen schließen oft Daten ein, die keinen Quellcode enthalten. Solche Daten werden als Projektressource bezeichnet und umfassen binäre Daten, Textdateien, Audio- oder Videodateien, Zeichenfolgentabellen, Symbole, Bilder, XML-Dateien und andere Datentypen, die von der Anwendung benötigt werden. Projektressourcendaten werden im XML-Format in der RESX-Datei (mit der Standardbezeichnung Resources.resx) gespeichert, die im Projektmappen-Explorer geöffnet werden kann. Weitere Informationen über Projektressourcen finden Sie unter Arbeiten mit Ressourcendateien.

Hinzufügen von Ressourcen zu Projekten

Sie können einem Projekt Ressourcen hinzufügen, indem Sie im Projektmappen-Explorer unter dem Projekt mit der rechten Maustaste auf Eigenschaften klicken, Öffnen wählen und dann im Projekt-Designer auf der Seite Ressourcen auf die Schaltfläche Ressource hinzufügen klicken.

Ressourcen können entweder als verknüpfte Ressourcen (also als externe Dateien) oder als eingebettete Ressourcen hinzugefügt werden, die direkt in die RESX-Datei eingebettet sind.

  • Wenn Sie eine verknüpfte Ressource hinzufügen, enthält die RESX-Datei, in der die Projektressourceninformationen gespeichert werden, lediglich einen relativen Pfad zur Ressourcendatei auf dem Datenträger. Wenn Sie Bilder, Videos oder andere komplexe Dateien als verknüpfte Ressourcen hinzufügen, können Sie diese mit einem Standardeditor bearbeiten, den Sie im Ressourcen-Designer mit dem entsprechenden Dateityp verknüpfen.

  • Wenn Sie eine eingebettete Ressource hinzufügen, werden die Daten direkt in der Ressourcendatei (.resx) des Projekts gespeichert. Zeichenfolgen können nur als eingebettete Ressourcen gespeichert werden.

Weitere Informationen finden Sie unter Verknüpfte und eingebettete Ressourcen und unter Ressourcen im RESX-Dateiformat.

Bearbeiten von Ressourcen

Mit dem Ressourcen-Designer können Sie während der Entwicklung Projektressourcen hinzufügen oder ändern, indem Sie eine Standardanwendung zum Bearbeiten der einzelnen Ressourcen zuordnen. Sie können auf den Ressourcen-Designer zugreifen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf Eigenschaften klicken, Öffnen wählen und dann im Projekt-Designer auf die Registerkarte Ressourcen klicken. Weitere Informationen finden Sie unter Seite "Ressourcen", Projekt-Designer. Die folgende Abbildung zeigt die Menüoptionen im Ressourcen-Designer:

Zum Bearbeiten eingebetteter Ressourcen müssen Sie direkt in der RESX-Datei arbeiten, um die einzelnen Zeichen oder Bytes zu bearbeiten. Deshalb ist es günstiger, komplexe Dateitypen beim Entwickeln als verknüpfte Ressourcen zu speichern. Mit dem Binär-Editor können Sie Ressourcendateien, darunter RESX-Dateien, auf Binärebene im hexadezimalen Format oder im ASCII-Format bearbeiten. Mit dem Grafik-Editor können Sie Symbole und Cursor sowie JPEG-Dateien und GIF-Dateien bearbeiten, die als verknüpfte Ressourcen gespeichert sind. Sie können auch andere Anwendungen als Editoren für diese Dateitypen auswählen. Weitere Informationen finden Sie unter Anzeigen und Bearbeiten von Ressourcen in einem Ressourcen-Editor.

Kompilieren von Ressourcen in Assemblys

Wenn Sie eine Anwendung erstellen, ruft Visual Studio das Tool resgen.exe auf, um die Anwendungsressourcen in eine interne Klasse mit dem Namen Resources zu konvertieren. Diese Klasse ist in der Datei Resources.Designer.cs enthalten, die im Projektmappen-Explorer unter der Datei Resources.resx geschachtelt ist. Die Resources-Klasse kapselt alle Projektressourcen in statische schreibgeschützte get-Eigenschaften, damit zur Laufzeit stark typisierte Ressourcen bereitgestellt werden können. Wenn Sie über die Visual C#-IDE erstellen, werden alle gekapselten Daten einschließlich der in die RESX-Datei eingebetteten Ressourcen und der verknüpften Dateien direkt in die Anwendungsassembly (die EXE- oder DLL-Datei) kompiliert. Anders ausgedrückt, verwendet die Visual C#-IDE immer die Compileroption /resource. Wenn Sie über die Befehlszeile erstellen, können Sie die /linkresource-Compileroption angeben, mit der Sie Ressourcen in einer anderen Datei als der Hauptanwendungsassembly bereitstellen können. Dies ist ein erweitertes Szenario und ist nur in bestimmten seltenen Situationen erforderlich. Weitaus häufiger werden Ressourcen mithilfe von Satellitenassemblys getrennt von der Hauptanwendungsassembly bereitgestellt, wie im Folgenden beschrieben.

Zugriff auf Ressourcen zur Laufzeit

Um zur Laufzeit auf eine Ressource zuzugreifen, verweisen Sie einfach so darauf, wie es bei anderen Klassenmembern üblich ist. Das folgende Beispiel zeigt, wie eine Bitmapressource mit dem Namen Image01 abgerufen wird. Beachten Sie, dass sich die Ressourcenklasse in einem Namespace mit dem Namen <Projektname>.Properties befindet. Sie müssen also entweder den vollqualifizierten Namen der jeweiligen Ressource verwenden oder die entsprechende using-Direktive in der Quelldatei hinzufügen, über die Sie auf die Ressourcenklasse zugreifen.

System.Drawing.Bitmap bitmap1 = myProject.Properties.Resources.Image01;

Intern verwendet die get-Eigenschaft die ResourceManager-Klasse, um eine neue Instanz des Objekts zu erstellen.

Weitere Informationen finden Sie unter Ressourcen in Anwendungen und unter Resource File Generator (Resgen.exe).

Ressourcen in Satellitenassemblys

Wenn Sie Anwendungen erstellen, die in mehrere Sprachen lokalisiert (übersetzt) werden, können Sie jede einzelne Gruppe kulturspezifischer Zeichenfolgen als Ressource in einer eigenen Satellitenassembly speichern. Wenn Sie die Anwendung verteilen, schließen Sie mit der Hauptanwendungsassembly alle entsprechenden Satellitenassemblys mit ein. Sie können dann zusätzliche Satellitenassemblys hinzufügen oder vorhandene ändern, ohne die Hauptanwendungsassembly erneut zu kompilieren. Weitere Informationen finden Sie unter Erstellen von Satellitenassemblys und unter Suchen und Verwenden von Ressourcen für eine bestimmte Kultur.

Siehe auch

Konzepte

Einführung in den Projekt-Designer

Weitere Ressourcen

Visual C#

Erste Schritte mit Visual C#

Assemblys in der Common Language Runtime (CLR)

Globalisieren und Lokalisieren von Anwendungen