Share via


Resgen.exe (Resource File Generator)

Aktualisiert: April 2011

Der Resource File Generator konvertiert Textdateien (.txt oder .restext) und Dateien im XML-basierten Ressourcenformat (.resc) in binäre Dateien der Common Language Runtime (.resources), 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- oder RESTEXT-Dateien in RESOURCES- oder RESC-Dateien.

    HinweisHinweis

    Die RESTEXT-Dateierweiterung wurde in .NET Framework, Version 2.0, eingeführt.Das Format von RESTEXT-Dateien ist mit dem Format von TXT-Dateien identisch.Durch die Erweiterung .restext können Sie jedoch Textdateien einfacher identifizieren, die Ressourcendefinitionen enthalten.

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

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

Dieses Tool wird automatisch mit Visual Studio und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.

  • Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.

    – oder –

    Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).

  • Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Parameter

Argument

Beschreibungen

filename.extension

Der Name der zu konvertierenden Eingabedatei. Die extension muss eine der folgenden Erweiterungen sein:

TXT- oder RESTEXT-Format

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 TEXT-Datei (.txt oder .restext) konvertiert werden soll.

.resources

Gibt die Erweiterung für eine Ressourcendatei an, die in eine RESX- oder TEXT-Datei (.txt oder .restext) konvertiert werden soll.

outputFilename.extension

Der Name der zu erstellenden Ressourcendatei.

Dieses Argument ist optional, wenn Sie eine TXT-, RESTEXT-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 oder .restext 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

Beschreibungen

/compile

Ermöglicht Ihnen die Angabe mehrerer RESX- oder Textdateien, 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.

Diese Option kann nicht mit der Option /str: verwendet 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:language[,namespace[,classname[,filename]]]

Erstellt eine Ressourcenklassendatei mit stark typisierten Eigenschaften in der Programmiersprache (cs oder C# für C#, vb oder visualbasic für Visual Basic), die in der language-Option angegeben wird. 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.

HinweisHinweis
In .NET Framework, Version 2.0, werden classname und filename ignoriert, wenn namespace nicht angegeben wird.

Es ist nur eine Eingabedatei zulässig, wenn die /str:-Option verwendet wird, sodass sie nicht mit der /compile-Option verwendet werden kann.

Wenn namespace angegeben wird, classname jedoch nicht, wird der Klassenname vom Namen der Ausgabedatei abgeleitet (zum Beispiel werden Punkte durch Unterstriche ersetzt). Daher ist es möglich, dass die stark typisierten Ressourcen nicht ordnungsgemäß funktionieren. Um dies zu vermeiden, geben Sie sowohl den Klassennamen als auch den Ausgabedateinamen an.

/usesourcepath

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

Hinweise

Resgen.exe konvertiert Dateien, indem die durch die folgenden vier Klassen implementierten Methoden umschlossen werden:

Beachten Sie, dass eine von der ResXResourceWriter-Klasse 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 (.txt oder .restext) können ausschließlich 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. Beispiele:

EmptyString=

Wenn eine Textdatei andere Zeichen als das einfache römische Alphabet enthält, z. B. diakritische Zeichen wie ein Cedille, einen Umlaut oder eine Tilde, muss die Textdatei mit UTF-8- oder Unicodecodierung gespeichert werden. Resgen.exe entfernt beispielsweise erweiterte ANSI-Zeichen, wenn eine Textdatei ohne UTF-8- oder Unicodecodierung verarbeitet wird.

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. Sie können Zeichenfolgenressourcen innerhalb dieser XML-Einträge wie in Textdateien 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 umschließ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 Resgen.exe (Resource File Generator) 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 Resgen.exe (Resource File Generator) 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 Resgen.exe (Resource File Generator) 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.

HinweisHinweis

Wenn Resgen.exe aus irgendeinem Grund fehlschlägt, ist der Rückgabewert -1.

HinweisHinweis

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 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.restext ein und schreibt die binäre Ressourcendatei yourResources.resources.

resgen myResources.restext 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

Die folgenden Befehle lesen die XML-Eingabedatei myResources.resx ein und schreiben die Textdateien myResources.txt und myResources.restext. Wenn die RESX-Datei eingebettete Objekte enthält, sollten Sie beachten, dass diese nicht ordnungsgemäß in die Textdateien konvertiert werden.

resgen myResources.resx myResources.txt
resgen myResources.resx myResources.restext

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

System.Resources.Tools

Al.exe (Assembly Linker-Tool)

Visual Studio- und Windows SDK-Eingabeaufforderungen

Konzepte

Ressourcen in Anwendungen

Weitere Ressourcen

.NET Framework-Tools

Codierung und Lokalisierung

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

April 2011

Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen.

Informationsergänzung.