Resource File Generator (Resgen.exe)

Der Resource File Generator konvertiert TXT-Dateien und RESX-Dateien (XML-basiertes Ressourcenformat) in binäre RESOURCES-Dateien der Common Language Runtime, die in eine ausführbare Binärdatei der Laufzeit eingebettet oder in Satellitenassemblys kompiliert werden können. Weitere Informationen über die Bereitstellung und das Abrufen von RESOURCES-Dateien finden Sie unter Ressourcen in Anwendungen.

Mit Resgen.exe können die folgenden Konvertierungen durchgeführt werden:

  • Konvertieren von TXT-Dateien in RESOURCES- oder RESX-Dateien

  • Konvertieren von RESOURCES-Dateien in Text- oder RESX-Dateien

  • Konvertierten von RESX-Dateien in Text- oder RESOURCES-Dateien

resgen [parameters] [/compile]filename.extension [outputFilename.extension] [/str:lang[,namespace[,class[,file]]]]

Parameter

Argument Beschreibung

filename.extension

Der Name der zu konvertierenden Eingabedatei. extension muss einen der folgenden Werte haben:

.txt

Gibt die Erweiterung für eine Textdatei an, die in eine RESOURCES- oder RESX-Datei konvertiert werden soll. Textdateien dürfen nur Zeichenfolgenressourcen enthalten.

.resx

Gibt die Erweiterung für eine XML-basierte Ressourcendatei an, die in eine RESOURCES- oder TXT-Datei konvertiert werden soll.

.resources

Gibt die Erweiterung für eine Ressourcendatei an, die in eine RESX- oder TXT-Datei konvertiert werden soll.

outputFilename.extension

Der Name der zu erstellenden Ressourcendatei.

Dieses Argument ist optional, wenn Sie eine TXT- oder RESX-Datei konvertieren. Geben Sie die Erweiterung .resources an, wenn Sie eine Text- oder RESX-Datei in eine RESOURCES-Datei konvertieren möchten. Wenn Sie outputFilename nicht angeben, fügt Resgen.exe die Erweiterung .resources an das filename-Argument für die Eingabedatei an und schreibt die Datei in das Verzeichnis von filename.

Das outputFilename-Argument ist erforderlich, wenn eine RESOURCES-Datei konvertiert werden soll. Geben Sie die Erweiterung .resx an, wenn Sie eine RESOURCES-Datei in eine XML-basierte Ressourcendatei konvertieren möchten. Geben Sie die Erweiterung .txt an, wenn Sie eine RESOURCES-Datei in eine Textdatei konvertieren möchten. Sie sollten eine RESOURCES-Datei nur dann in eine TXT-Datei konvertieren, wenn die RESOURCES-Datei ausschließlich Zeichenfolgenwerte enthält.

Option Beschreibung

/compile

Ermöglicht Ihnen die Angabe mehrerer RESX- oder TXT-Dateien, die in einer einzelnen Sammeloperation in RESOURCES-Dateien konvertiert werden. Wenn Sie diese Option nicht festlegen, kann nur ein Argument für die Eingabedatei angegeben werden.

/publicClass

Erstellt eine stark typisierte Ressourcenklasse als öffentliche Klasse.

Diese Option wird ignoriert, wenn die Option /str: nicht verwendet wird.

/r: assembly

Gibt an, dass Typen aus assembly geladen werden müssen. Wenn Sie diese Option angeben, verwendet eine RESX-Datei mit einer früheren Version eines Typs den Typ in assembly.

/str: Sprache[,Namespace[,Klassenname[,Dateiname]]]

Erstellt eine Datei der resource-Klasse mit starker Typisierung in der Programmiersprache (C# oder Visual Basic), die in der language-Option angegeben ist. Die namespace-Option kann zur Angabe des Standardnamespaces des Projekts verwendet werden, die classname-Option zur Angabe des Namens der generierten Klasse, und die filename-Option zur Angabe des Namens der Klassendatei.

/usesourcepath

Gibt an, dass das aktuelle Verzeichnis der Eingabedatei zum Auflösen relativer Dateipfade verwendet wird.

Hinweise

Resgen.exe konvertiert Dateien, indem ein Wrapper auf die durch die folgenden vier Klassen implementierten Methoden angewendet wird:

Beachten Sie, dass eine von ResXResourceWriter erstellte RESX-Datei nicht direkt durch eine .NET Framework-Anwendung verwendet werden kann. Konvertieren Sie diese Datei vor dem Hinzufügen zu einer Anwendung mit Resgen.exe in eine RESOURCES-Datei. Weitere Informationen zum Implementieren dieser Klassen in Code finden Sie in den entsprechenden Referenzthemen.

Resgen.exe kann die Eingabedatei nur analysieren, wenn die angegebene TXT- oder RESX-Datei im richtigen Format vorliegt.

Textdateien dürfen nur Zeichenfolgenressourcen enthalten. Zeichenfolgenressourcen sind nützlich, wenn Sie eine Anwendung schreiben, bei der Zeichenfolgen in mehrere Sprachen übersetzt werden müssen. So können Sie z. B. Menüzeichenfolgen leicht lokalisieren, indem Sie die jeweils zutreffende Zeichenfolgenressource verwenden. Resgen.exe liest Textdateien, die Name-Wert-Paare enthalten, wobei der Name eine Zeichenfolge ist, die die Ressource beschreibt, und der Wert die Zeichenfolgenressource selbst darstellt. Sie müssen jedes Name-Wert-Paar im folgenden Format in einer eigenen Zeile angeben:

name=value

Beachten Sie, dass in Textdateien leere Zeichenfolgen zulässig sind. Beispiel:

EmptyString=

Resgen.exe überprüft die Textdatei auf doppelte Ressourcennamen. Wenn die Textdatei doppelte Ressourcennamen enthält, gibt Resgen.exe eine Warnung aus und ignoriert die doppelten Namen. Ausführliche Informationen über das Textdateiformat finden Sie unter Ressourcen im Textdateiformat.

Das Format von RESX-Ressourcendateien besteht aus XML-Einträgen. Ähnlich wie bei TXT-Dateien können Sie Zeichenfolgenressourcen in diesen XML-Einträgen angeben. Ein wichtiger Vorteil von RESX-Dateien gegenüber TXT-Dateien ist, dass Sie zusätzlich Objekte angeben oder einbetten können. Wenn Sie eine RESX-Datei einsehen, wird die tatsächliche binäre Form eines eingebetteten Objekts (z. B. eines Bildes) angezeigt, sofern diese binären Informationen Teil des Ressourcenmanifests sind. Sie können RESX-Dateien wie TXT-Dateien mit einem Text-Editor (z. B. Editor oder Microsoft Word) öffnen und Inhalte einfügen, analysieren oder ändern. Beachten Sie, dass Sie hierfür fundierte Kenntnisse über XML-Tags und die Struktur von RESX-Dateien benötigen. Ausführliche Informationen über das Dateiformat .resx finden Sie unter Ressourcen im .Resx-Dateiformat.

Um eine RESOURCES-Datei mit eingebetteten Objekten zu erstellen, die keine Zeichenfolgen darstellen, verwenden Sie entweder Resgen.exe zum Konvertieren einer RESX-Datei mit enthaltenen Objekten oder fügen die Objektressourcen direkt aus dem Code in die Datei ein, indem Sie die Methoden der ResourceWriter-Klasse verwenden. Wenn Sie mit Resgen.exe eine RESOURCES-Datei mit enthaltenen Objekten in eine TXT-Datei konvertieren, werden alle Zeichenfolgenressourcen richtig konvertiert. Die Datentypen der Objekte, die keine Zeichenfolgen darstellen, werden jedoch ebenfalls als Zeichenfolgen in die Datei geschrieben. Die eingebetteten Objekte gehen bei der Konvertierung verloren, und Resgen.exe meldet, dass beim Abrufen der Ressourcen ein Fehler aufgetreten ist.

.NET Framework Version 2.0 unterstützt stark typisierte Ressourcen. Die Unterstützung von stark typisierten Ressourcen kapselt den Zugriff auf Ressourcen, indem Klassen erstellt werden, die schreibgeschützte (get) Eigenschaften enthalten. Damit steht eine andere Möglichkeit der Verwendung von Ressourcen statt der direkten Verwendung der Methoden der ResourceManager-Klasse zur Verfügung. Die Grundfunktionen werden durch die /str -Befehlszeilenoption in Resgen.exe gewährleistet, die die Funktionalität der StronglyTypedResourceBuilder-Klasse einschließt. Wenn Sie die /str-Option angeben, ist die Ausgabe von Resgen.exe eine Klasse, die stark typisierte Eigenschaften enthält, die mit den Ressourcen übereinstimmen, auf die im Eingabeparameter verwiesen wird. Diese Klasse ermöglicht stark typisierten, schreibgeschützten Zugriff auf die Ressourcen, die in der verarbeiteten Datei verfügbar sind.

Mithilfe des Tools Resource File Generator (Resgen.exe) können Sie .resources-Dateien sowie stark typisierte Wrapper für den Zugriff auf diese .resources-Dateien erstellen. Beim Erstellen eines stark typisierten Wrappers muss der Name der .resources-Datei mit dem Namenspace- und Klassennamen des generierten Codes übereinstimmen (beispielsweise MyNamespace.MyClass.resources). Mit dem Tool Resource File Generator (Resgen.exe) können jedoch Optionen festgelegt werden, durch die eine .resources-Datei mit einem inkompatiblen Namen erstellt wird. Um dieses Verhalten zu umgehen, benennen Sie Ausgabedateien mit inkompatiblen Namen um, nachdem sie von Resource File Generator (Resgen.exe) generiert wurden.

Wenn Sie das Erstellen der RESOURCES-Dateien mit Resgen.exe abgeschlossen haben, können Sie die Ressourcen mit dem Assembly Linker-Tool entweder in eine ausführbare Binärdatei der Laufzeit einbetten oder in Satellitenassemblys kompilieren.

Hinweis

Wenn in Resgen.exe ein Fehler auftritt, ist der Rückgabewert -1.

Hinweis

Resgen.exe akzeptiert beim Generieren einer Ressourcenklasse mit starker Typisierung keinen RESX-Dateinamen mit Leerzeichen. Alle ungültigen Zeichen werden durch einem Unterstrich ("_") ersetzt. Weitere Informationen hierzu finden Sie unter VerifyResourceName.

Beispiele

Der folgende Befehl (ohne angegebene Optionen) zeigt die Befehlssyntax und Optionen für Resgen.exe an.

resgen

Der folgende Befehl liest die Name-Wert-Paare in myResources.txt ein und schreibt die binäre Ressourcendatei myResources.resources. . Da der Name der Ausgabedatei nicht explizit angegeben ist, erhält sie standardmäßig den gleichen Namen wie die Eingabedatei.

resgen myResources.txt 

Der folgende Befehl liest die Name-Wert-Paare in myResources.txt ein und schreibt die binäre Ressourcendatei yourResources.resources.

resgen myResources.txt yourResources.resources

Der folgende Befehl liest die XML-Eingabedatei myResources.resx ein und schreibt die binäre Ressourcendatei myResources.resources.

resgen myResources.resx myResources.resources

Der folgende Befehl liest die binäre Ressourcendatei myResources.resources ein und schreibt die XML-Ausgabedatei myResources.resx.

resgen myResources.resources myResources.resx

Der folgende Befehl liest die XML-Eingabedatei myResources.resx ein und schreibt die TXT-Datei myResources.txt. Wenn die RESX-Datei eingebettete Objekte enthält, sollten Sie beachten, dass diese nicht ordnungsgemäß in die TXT-Datei konvertiert werden.

resgen myResources.resx myResources.txt

Der folgende Befehl liest die XML-Eingabedatei myResources.resx ein und schreibt die binäre Ressourcendatei myResources.resources. Er generiert außerdem die Visual Basic-Datei MyFile.vb mit einer MyClass-Klasse, die stark typisierte Eigenschaften enthält, die mit den Ressourcen übereinstimmen, auf die in der Eingabedatei verwiesen wird. MyClass ist im Namespace Namespace1 enthalten.

resgen myResources.resx myResources.resources /str:C#,Namespace1,MyClass,MyFile.cs

Siehe auch

Referenz

.NET Framework-Tools
Assembly Linker-Tool (Al.exe)
SDK-Eingabeaufforderung
System.Resources.Tools

Konzepte

Ressourcen in Anwendungen

Weitere Ressourcen

Codierung und Lokalisierung