Resgen.exe (Resource File Generator)Resgen.exe (Resource File Generator)

Der Resource File Generator (Resgen.exe) konvertiert Textdateien (TXT- oder RESTEXT-Dateien) und Dateien im XML-basierten Ressourcenformat (RESX-Dateien) in binäre Common Language Runtime-Dateien (RESOURCES-Dateien), die in ausführbare Laufzeit-Binärdateien oder Satellitenassemblys eingebettet werden können.The Resource File Generator (Resgen.exe) converts text (.txt or .restext) files and XML-based resource format (.resx) files to common language runtime binary (.resources) files that can be embedded in a runtime binary executable or satellite assembly. (Weitere Informationen finden Sie unter Erstellen von Ressourcendateien.)(See Creating Resource Files.)

Resgen.exe ist ein universelles Hilfsprogramm zur Ressourcenkonvertierung, mit dem folgende Aufgaben ausgeführt werden können:Resgen.exe is a general-purpose resource conversion utility that performs the following tasks:

  • Konvertieren von TXT- oder RESTEXT-Dateien in RESOURCES- oder RESX-DateienConverts .txt or .restext files to .resources or .resx files. (RESTEXT- und TXT-Dateien weisen das gleiche Format auf.(The format of .restext files is identical to the format of .txt files. Durch die Erweiterung ".restext" können jedoch Textdateien mit Ressourcendefinitionen einfacher identifiziert werden.)However, the .restext extension helps you identify text files that contain resource definitions more easily.)

  • Konvertieren von RESOURCES-Dateien in Text- oder RESX-DateienConverts .resources files to text or .resx files.

  • Konvertieren von RESX-Dateien in Text- oder RESOURCES-DateienConverts .resx files to text or .resources files.

  • Extrahieren der Zeichenfolgenressourcen aus einer Assembly in eine RESW-Datei, die von einer Windows 8.x Store-App verwendet werden kannExtracts the string resources from an assembly into a .resw file that is suitable for use in a Windows 8.x Store app.

  • Erstellen einer stark typisierten Klasse, die Zugriff auf einzelne benannte Ressourcen und die ResourceManager-Instanz bietetCreates a strongly typed class that provides access to individual named resources and to the ResourceManager instance.

Für alle Fehler in Resgen.exe lautet der Rückgabewert "‑1".If Resgen.exe fails for any reason, the return value is –1.

Verwenden Sie folgenden Befehl ohne Angabe von Optionen, um die Hilfe, Befehlssyntax und Optionen von Resgen.exe anzuzeigen:To get help with Resgen.exe, you can use the following command, with no options specified, to display the command syntax and options for Resgen.exe:

resgen  

Außerdem können Sie den /?-Schalter verwenden:You can also use the /? switch:

resgen /?  

Wenn Sie Resgen.exe zum Erstellen binärer RESOURCES-Dateien nutzen, können Sie einen Sprachcompiler verwenden, um die Binärdateien in ausführbare Assemblys einzubetten. Wahlweise können Sie die Binärdateien mithilfe des Assemblylikers („al.exe“) in Satellitenassemblys kompilieren.If you use Resgen.exe to generate binary .resources files, you can use a language compiler to embed the binary files into executable assemblies, or you can use the Assembly Linker (Al.exe) to compile them into satellite assemblies.

Dieses Tool wird automatisch mit Visual Studio installiert.This tool is automatically installed with Visual Studio. Verwenden Sie die Developer-Eingabeaufforderung für Visual Studio (oder die Visual Studio-Eingabeaufforderung in Windows 7), um das Tool auszuführen.To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Weitere Informationen finden Sie unter Eingabeaufforderungen.For more information, see Command Prompts.

Geben Sie an der Eingabeaufforderung Folgendes ein:At the command prompt, type the following:

SyntaxSyntax

resgen  [-define:symbol1[,symbol2,...]] [/useSourcePath] filename.extension  | /compile filename.extension... [outputFilename.extension] [/r:assembly] [/str:lang[,namespace[,class[,file]]] [/publicclass]]
resgen filename.extension [outputDirectory]  

ParameterParameters

Parameter oder SchalterParameter or switch BeschreibungDescription
/define: symbol1[, symbol2,...]/define: symbol1[, symbol2,...] Ab .NET Framework 4.5 wird bedingte Kompilierung in textbasierten Ressourcendateien (TXT- oder RESTEXT-Dateien) unterstützt.Starting with the .NET Framework 4.5, supports conditional compilation in text-based (.txt or .restext) resource files. Wenn symbol einem Symbol entspricht, das innerhalb eines #ifdef-Konstrukts in der Eingabetextdatei enthalten ist, wird die zugehörige Zeichenfolgenressource in die RESOURCES-Datei einbezogen.If symbol corresponds to a symbol included in the input text file within a #ifdef construct, the associated string resource is included in the .resources file. Wenn die Eingabetextdatei eine #if !-Anweisung mit einem Symbol enthält, das nicht durch den /define-Schalter definiert ist, wird die zugehörige Zeichenfolgenressource in die RESOURCES-Datei einbezogen.If the input text file includes an #if ! statement with a symbol that is not defined by the /define switch, the associated string resource is included in the resources file.

Bei Verwendung mit Nicht-Textdateien wird /define ignoriert./define is ignored if it is used with non-text files. Bei Symbolen wird die Groß-/Kleinschreibung berücksichtigt.Symbols are case-sensitive.

Weitere Informationen zu dieser Option finden Sie weiter unten in diesem Thema unter Bedingte Kompilierung von Ressourcen.For more information about this option, see Conditionally Compiling Resources later in this topic.
useSourcePath Gibt an, dass das aktuelle Verzeichnis der Eingabedatei zum Auflösen relativer Dateipfade verwendet werden soll.Specifies that the input file's current directory is to be used to resolve relative file paths.
/compile Ermöglicht Ihnen die Angabe mehrerer RESX- oder Textdateien, die von einem einzelnen Massenvorgang in RESOURCES-Dateien konvertiert werden sollen.Enables you to specify multiple .resx or text files to convert to multiple .resources files in a single bulk operation. Wenn Sie diese Option nicht festlegen, kann für die Eingabedatei nur ein Argument angegeben werden.If you do not specify this option, you can specify only one input file argument. Ausgabedateien werden als dateiname.resources benannt.Output files are named filename.resources.

Diese Option kann nicht mit der /str:-Option verwendet werden.This option cannot be used with the /str: option.

Weitere Informationen zu dieser Option finden Sie weiter unten in diesem Thema unter Kompilieren oder Konvertieren mehrerer Dateien.For more information about this option, see Compiling or Converting Multiple Files later in this topic.
/r: assembly/r: assembly Verweist auf Metadaten aus der angegebenen Assembly.References metadata from the specified assembly. Wird beim Konvertieren von RESX-Dateien verwendet und ermöglicht Resgen.exe das Serialisieren oder Deserialisieren von Objektressourcen.It is used when converting .resx files and allows Resgen.exe to serialize or deserialize object resources. Ähnelt der /reference:-Option oder /r:-Option für den C#- und den Visual Basic-Compiler.It is similar to the /reference: or /r: options for the C# and Visual Basic compilers.
filename.extension Gibt den Namen der zu konvertierenden Eingabedatei an.Specifies the name of the input file to convert. Wenn Sie die vor dieser Tabelle aufgeführte erste, längere Befehlszeilensyntax verwenden, muss extension einen der folgenden Werte aufweisen:If you're using the first, lengthier command-line syntax presented before this table, extension must be one of the following:

".txt" oder ".restext".txt or .restext
Eine Textdatei, die in eine RESOURCES-Datei oder RESX-Datei konvertiert werden soll.A text file to convert to a .resources or a .resx file. Textdateien dürfen nur Zeichenfolgenressourcen enthalten.Text files can contain only string resources. Weitere Informationen zum Dateiformat finden Sie im Abschnitt „Ressourcen in Textdateien“ unter Erstellen einer Ressourcendatei.For information about the file format, see the "Resources in Text Files" section of Creating Resource Files.

.resx.resx
Eine XML-basierte Ressourcendatei, die in eine RESOURCES- oder Textdatei (TXT- oder RESTEXT-Datei) konvertiert werden soll.An XML-based resource file to convert to a .resources or a text (.txt or .restext) file.

.resources.resources
Eine binäre Ressourcendatei, die in eine RESX- oder Textdatei (TXT- oder RESTEXT-Datei) konvertiert werden soll.A binary resource file to convert to a .resx or a text (.txt or .restext) file.

Wenn Sie die vor dieser Tabelle aufgeführte zweite, kürzere Befehlszeilensyntax verwenden, muss extension einen der folgenden Werte aufweisen:If you're using the second, shorter command-line syntax presented before this table, extension must be the following:

".exe" oder ".dll".exe or .dll
Eine .NET Framework-Assembly (ausführbare Datei oder Bibliothek), deren Zeichenfolgenressourcen zwecks Verwendung beim Entwickeln von Windows 8.x Store-Apps in eine RESW-Datei extrahiert werden sollen.A .NET Framework assembly (executable or library) whose string resources are to be extracted to a .resw file for use in developing Windows 8.x Store apps.
outputFilename.extension Gibt den Namen und den Typ der zu erstellenden Ressourcendatei an.Specifies the name and type of the resource file to create.

Dieses Argument ist optional, wenn Sie eine TXT-, RESTEXT- oder RESX-Datei in eine RESOURCES-Datei konvertieren.This argument is optional when converting from a .txt, .restext, or .resx file to a .resources file. Wenn Sie outputFilename nicht angeben, fügt Resgen.exe die Erweiterung ".resources" an den eingegebenen filename an und schreibt die Datei in das Verzeichnis, das filename,extension enthält.If you do not specify outputFilename, Resgen.exe appends a .resources extension to the input filename and writes the file to the directory that contains filename,extension.

Das outputFilename.extension-Argument ist erforderlich, wenn eine RESOURCES-Datei konvertiert werden soll.The outputFilename.extension argument is mandatory when converting from a .resources file. Geben Sie einen Dateinamen mit der Erweiterung ".resx" an, wenn Sie eine RESOURCES-Datei in eine XML-basierte Ressourcendatei konvertieren.Specify a file name with the .resx extension when converting a .resources file to an XML-based resource file. Geben Sie einen Namen mit der Erweiterung ".txt" oder ".restext" an, wenn Sie eine RESOURCES-Datei in eine Textdatei konvertieren.Specify a file name with the .txt or .restext extension when converting a .resources file to a text file. Sie sollten eine RESOURCES-Datei nur dann in eine TXT-Datei konvertieren, wenn die RESOURCES-Datei ausschließlich Zeichenfolgenwerte enthält.You should convert a .resources file to a .txt file only when the .resources file contains only string values.
outputDirectory Gibt für Windows 8.x Store-Apps das Verzeichnis an, in das eine RESW-Datei mit den Zeichenfolgenressourcen in filename.extension geschrieben werden soll.For Windows 8.x Store apps, specifies the directory in which a .resw file that contains the string resources in filename.extension will be written. outputDirectory muss bereits vorhanden sein.outputDirectory must already exist.
/str: language[,namespace[,classname[,filename]]]/str: language[,namespace[,classname[,filename]]] Erstellt eine stark typisierte Ressourcenklassendatei in der durch die language Option angegebenen Programmiersprache.Creates a strongly typed resource class file in the programming language specified in the language option. language kann aus einem der folgenden Literale bestehen:language can consist of one of the following literals:

- Für C#: c#, cs oder csharp.- For C#: c#, cs, or csharp.
- Für Visual Basic: vb oder visualbasic.- For Visual Basic: vb or visualbasic.
- Für VBScript: vbs oder vbscript.- For VBScript: vbs or vbscript.
- Für C#: c++, mc oder cpp.- For C++: c++, mc, or cpp.
- Für JavaScript: js, jscript oder javascript.- For JavaScript: js, jscript, or javascript.

Die namespace-Option gibt den Standardnamespace des Projekts an, die classname-Option den Namen der generierten Klasse und die filename-Option den Namen der Klassendatei.The namespace option specifies the project's default namespace, the classname option specifies the name of the generated class, and the filename option specifies the name of the class file.

Die /str:-Option lässt nur eine Eingabedatei zu und kann daher nicht mit der /compile-Option verwendet werden.The /str: option allows only one input file, so it cannot be used with the /compile option.

Wenn namespace angegeben wird, classname jedoch nicht, wird der Klassenname vom Namen der Ausgabedatei abgeleitet (zum Beispiel werden Punkte durch Unterstriche ersetzt).If namespace is specified but classname is not, the class name is derived from the output file name (for example, underscores are substituted for periods). Daher ist es möglich, dass die stark typisierten Ressourcen nicht ordnungsgemäß funktionieren.The strongly typed resources might not work correctly as a result. Um dies zu vermeiden, geben Sie sowohl den Klassennamen als auch den Ausgabedateinamen an.To avoid this, specify both class name and output file name.

Weitere Informationen zu dieser Option finden Sie weiter unten in diesem Thema unter Generating a Strongly Typed Resource Class (Generieren einer stark typisierten Ressourcenklasse).For more information about this option, see Generating a Strongly Typed Resource Class later in this topic.
/publicClass Erstellt eine stark typisierte Ressourcenklasse als öffentliche Klasse.Creates a strongly typed resource class as a public class. Standardmäßig ist die Ressourcenklasse internal in C# und Friend in Visual Basic.By default, the resource class is internal in C# and Friend in Visual Basic.

Diese Option wird ignoriert, wenn die Option /str: nicht verwendet wird.This option is ignored if the /str: option is not used.

Resgen.exe und RessourcendateitypenResgen.exe and Resource File Types

Für eine erfolgreiche Ressourcenkonvertierung mit Resgen.exe müssen Text- und RESX-Dateien das richtige Format aufweisen.In order for Resgen.exe to successfully convert resources, text and .resx files must follow the correct format.

Textdateien (".txt" und ".restext")Text (.txt and .restext) Files

Textdateien (".txt" oder ".restext") dürfen ausschließlich Zeichenfolgenressourcen enthalten.Text (.txt or .restext) files may contain only string resources. Zeichenfolgenressourcen sind nützlich, wenn Sie eine Anwendung schreiben, für die Zeichenfolgen in mehrere Sprachen übersetzt werden müssen.String resources are useful if you are writing an application that must have strings translated into several languages. Beispielsweise können Menüzeichenfolgen leicht anhand der entsprechenden Zeichenfolgenressource lokalisiert werden.For example, you can easily regionalize menu strings by using the appropriate string resource. Resgen.exe liest Textdateien mit Name-Wert-Paaren, wobei es sich beim Namen um eine die Ressource beschreibende Zeichenfolge handelt und der Wert die Ressourcenzeichenfolge selbst darstellt.Resgen.exe reads text files that contain name/value pairs, where the name is a string that describes the resource and the value is the resource string itself.

Hinweis

Weitere Informationen zum Format von TXT- und RESTEXT-Dateien finden Sie im Abschnitt" Ressourcen in Textdateien" unter Erstellen einer Ressourcendatei.For information about the format of .txt and .restext files, see the "Resources in Text Files" section of Creating Resource Files.

Eine Textdatei mit Ressourcen muss in UTF-8- oder Unicode (UTF-16)-Codierung gespeichert werden, es sei denn, sie enthält nur Zeichen aus dem lateinischen Standardalphabet (U+007F).A text file that contains resources must be saved with UTF-8 or Unicode (UTF-16) encoding unless it contains only characters in the Basic Latin range (to U+007F). Beim Verarbeiten einer in ANSI-Codierung gespeicherten Textdatei werden erweiterte ANSI-Zeichen von Resgen.exe entfernt.Resgen.exe removes extended ANSI characters when it processes a text file that is saved using ANSI encoding.

Die Textdatei wird von Resgen.exe auf doppelte Ressourcennamen überprüft.Resgen.exe checks the text file for duplicate resource names. Wenn die Textdatei doppelte Ressourcennamen aufweist, gibt Resgen.exe eine Warnung aus und ignoriert den zweiten Wert.If the text file contains duplicate resource names, Resgen.exe will emit a warning and ignore the second value.

RESX-Dateien.resx Files

Das Format von RESX-Ressourcendateien besteht aus XML-Einträgen.The .resx resource file format consists of XML entries. Innerhalb dieser XML-Einträge können wie in Textdateien Zeichenfolgenressourcen angegeben werden.You can specify string resources within these XML entries, as you would in text files. Ein wichtiger Vorteil von RESX-Dateien gegenüber Textdateien ist, dass auch Objekte angegeben oder eingebettet werden können.A primary advantage of .resx files over text files is that you can also specify or embed objects. Wenn Sie eine RESX-Datei anzeigen, wird die binäre Form eines eingebetteten Objekts (z. B. eines Bilds) dargestellt, sofern diese binären Informationen Teil des Ressourcenmanifests sind.When you view a .resx file, you can see the binary form of an embedded object (for example, a picture) when this binary information is a part of the resource manifest. Wie Textdateien können RESX-Dateien mit einem Text-Editor (z. B. Editor oder Microsoft Word) geöffnet und der Inhalt eingefügt, analysiert und bearbeitet werden.As with text files, you can open a .resx file with a text editor (such as Notepad or Microsoft Word) and write, parse, and manipulate its contents. Beachten Sie, dass hierfür fundierte Kenntnisse über XML-Tags und die RESX-Dateistruktur erforderlich sind.Note that this requires a good knowledge of XML tags and the .resx file structure. Weitere Informationen zum RESX-Dateiformat Sie im Abschnitt „Ressourcen in RESX-Dateien“ unter Erstellen einer Ressourcendatei.For more details on the .resx file format, see the "Resources in .resx Files" section of Creating Resource Files.

Zum Erstellen einer RESOURCES-Datei mit eingebetteten Objekten, die keine Zeichenfolgen darstellen, verwenden Sie entweder Resgen.exe zum Konvertieren einer RESX-Datei mit enthaltenen Objekten oder fügen die Objektressourcen der Datei direkt über den Code hinzu, indem Sie die Methoden der ResourceWriter-Klasse aufrufen.In order to create a .resources file that contains embedded nonstring objects, you must either use Resgen.exe to convert a .resx file containing objects or add the object resources to your file directly from code by calling the methods provided by the ResourceWriter class.

Wenn eine RESX- oder RESOURCES-Datei Objekte enthält und mit Resgen.exe in eine Textdatei konvertiert wird, werden alle Zeichenfolgenressourcen ordnungsgemäß konvertiert. Die Datentypen der Objekte, die keine Zeichenfolgen darstellen, werden jedoch ebenfalls als Zeichenfolgen in die Datei geschrieben.If your .resx or .resources file contains objects and you use Resgen.exe to convert it to a text file, all the string resources will be converted correctly, but the data types of the nonstring objects will also be written to the file as strings. Die eingebetteten Objekte gehen bei der Konvertierung verloren, und von Resgen.exe wird ein Fehler beim Abrufen der Ressourcen gemeldet.You will lose the embedded objects in the conversion, and Resgen.exe will report that an error occurred in retrieving the resources.

Konvertieren zwischen RessourcendateitypenConverting Between Resources File Types

Die Konvertierung zwischen verschiedenen Ressourcendateitypen kann möglicherweise nicht mit Resgen.exe durchgeführt werden, oder bestimmte Ressourceninformationen können, je nach den Quell- und Zieldateitypen, verloren gehen.When you convert between different resource file types, Resgen.exe may not be able to perform the conversion or may lose information about specific resources, depending on the source and target file types. In der folgenden Tabelle finden Sie die Konvertierungstypen, die beim Konvertieren eines Ressourcendateityps in einen anderen erfolgreich ausgeführt werden.The following table specifies the types of conversions that are successful when converting from one resource file type to another.

Konvertieren vonConvert from In TextdateiTo text file In RESX-DateiTo .resx file In RESW-DateiTo .resw file In RESOURCES-DateiTo .resources file
Textdatei (".txt" oder ".restext")Text (.txt or .restext) file -- Keine ProblemeNo issues Nicht unterstütztNot supported Keine ProblemeNo issues
RESX-Datei.resx file Konvertierungsfehler, wenn die Datei Ressourcen aufweist, die keine Zeichenfolgen sind (einschließlich Dateilinks)Conversion fails if file contains non-string resources (including file links) -- Nicht unterstütztNot supported Keine ProblemeNo issues
RESOURCES-Datei.resources file Konvertierungsfehler, wenn die Datei Ressourcen aufweist, die keine Zeichenfolgen sind (einschließlich Dateilinks)Conversion fails if file contains non-string resources (including file links) Keine ProblemeNo issues Nicht unterstütztNot supported --
EXE- oder DLL-Assembly.exe or .dll assembly Nicht unterstütztNot supported Nicht unterstütztNot supported Nur Zeichenfolgenressourcen (einschließlich Pfadnamen) werden als Ressourcen erkanntOnly string resources (including path names) are recognized as resources Nicht unterstütztNot supported

Ausführen bestimmter Aufgaben mit Resgen.exePerforming Specific Resgen.exe Tasks

Resgen.exe bietet vielfältige Verwendungsmöglichkeiten, z. B. Kompilieren einer text- oder XML-basierten Ressourcendatei in eine Binärdatei, Konvertieren zwischen Ressourcendateiformaten und Generieren einer Klasse, die ResourceManager-Funktionen umschließt und Zugriff auf Ressourcen bereitstellt.You can use Resgen.exe in diverse ways: to compile a text-based or XML-based resource file into a binary file, to convert between resource file formats, and to generate a class that wraps ResourceManager functionality and provides access to resources. In diesem Abschnitt werden die einzelnen Aufgaben ausführlich beschrieben:This section provides detailed information about each task:

Kompilieren von Ressourcen in eine BinärdateiCompiling Resources into a Binary File

Resgen.exe wird am häufigsten zum Kompilieren einer textbasierten Ressourcendatei (TXT- oder RESTEXT-Datei) oder einer XML-basierten Ressourcendatei (RESX-Datei) in eine binäre RESOURCES-Datei verwendet.The most common use of Resgen.exe is to compile a text-based resource file (a .txt or .restext file) or an XML-based resource file (a .resx file) into a binary .resources file. Die Ausgabedatei kann dann mit einem Sprachcompiler in eine Hauptassembly oder mit dem Assemblylinker („al.exe“) in eine Satellitenassembly eingebettet werden.The output file then can be embedded in a main assembly by a language compiler or in a satellite assembly by Assembly Linker (AL.exe).

Die Syntax zum Kompilieren einer Ressourcendatei lautet wie folgt:The syntax to compile a resource file is:

resgen inputFilename [outputFilename]

mit folgenden Parametern:where the parameters are:

inputFilename
Der Dateiname der zu kompilierenden Ressourcendatei, einschließlich der Erweiterung.The file name, including the extension, of the resource file to compile. Von Resgen.exe werden nur Dateien mit den Erweiterungen ".txt", ".restext" oder ".resx" kompiliert.Resgen.exe only compiles files with extensions of .txt, .restext, or .resx.

outputFilename
Der Name der Ausgabedatei.The name of the output file. Wenn Sie outputFilename weglassen, wird von Resgen.exe eine RESOURCES-Datei mit dem Stammdateinamen von inputFilename im gleichen Verzeichnis wie inputFilename erstellt.If you omit outputFilename, Resgen.exe creates a .resources file with the root file name of inputFilename in the same directory as inputFilename. Wenn outputFilename einen Verzeichnispfad aufweist, muss das Verzeichnis vorhanden sein.If outputFilename includes a directory path, the directory must exist.

Sie geben einen vollqualifizierten Namespace für die RESOURCES-Datei an, indem Sie diesen in den Dateinamen einbeziehen und durch einen Punkt vom Stammdateinamen trennen.You provide a fully qualified namespace for the .resources file by specifying it in the file name and separating it from the root file name by a period. Wenn outputFilename z.B. MyCompany.Libraries.Strings.resources ist, ist der Namespace „MyCompany.Libraries“.For example, if outputFilename is MyCompany.Libraries.Strings.resources, the namespace is MyCompany.Libraries.

Durch den folgenden Befehl werden die Name-Wert-Paare der Datei "Resources.txt" gelesen und eine binäre RESOURCES-Datei mit dem Namen "Resources.resources" geschrieben.The following command reads the name/value pairs in Resources.txt and writes a binary .resources file named Resources.resources. Da der Name der Ausgabedatei nicht explizit angegeben wird, erhält diese standardmäßig den gleichen Namen wie die Eingabedatei.Because the output file name is not specified explicitly, it receives the same name as the input file by default.

resgen Resources.txt

Durch den folgenden Befehl werden die Name-Wert-Paare der Datei "Resources.restext" gelesen und eine binäre Ressourcendatei mit dem Namen "StringResources.resources" geschrieben.The following command reads the name/value pairs in Resources.restext and writes a binary resources file named StringResources.resources.

resgen Resources.restext StringResources.resources  

Durch den folgenden Befehl wird die XML-basierte Eingabedatei "Resources.resx" gelesen und eine binäre RESOURCES-Datei mit dem Namen "Resources.resources" geschrieben.The following command reads an XML-based input file named Resources.resx and writes a binary .resources file named Resources.resources.

resgen Resources.resx Resources.resources  

Konvertieren zwischen RessourcendateitypenConverting Between Resource File Types

Neben dem Kompilieren von text- oder XML-basierten Ressourcendateien in binäre RESOURCES-Dateien kann mit Resgen.exe jeder unterstützte Dateityp in einen anderen unterstützten Dateityp konvertiert werden.In addition to compiling text-based or XML-based resource files into binary .resources files, Resgen.exe can convert any supported file type to any other supported file type. Dies ermöglicht das Ausführen folgender Konvertierungen:This means that it can perform the following conversions:

  • TXT- und RESTEXT-Dateien in RESX-Dateien..txt and .restext files to .resx files.

  • RESX-Dateien in TXT- und RESTEXT-Dateien.resx files to .txt and .restext files.

  • RESOURCES-Dateien in TXT- und RESTEXT-Dateien.resources files to .txt and .restext files.

  • RESOURCES-Dateien in RESX-Dateien.resources files to .resx files.

Die Syntax ist mit der im vorherigen Abschnitt erläuterten identisch.The syntax is the same as that shown in the previous section.

Darüber hinaus können Sie Resgen.exe verwenden, um in eine .NET Framework-Assembly eingebettete Ressourcen in eine RESW-Datei für Windows 8.x Store-Anwendungen zu konvertieren.In addition, you can use Resgen.exe to convert embedded resources in a .NET Framework assembly to a .resw file tor Windows 8.x Store apps.

Durch den folgenden Befehl wird die binäre Ressourcendatei "Resources.resources" gelesen und eine XML-basierte Ausgabedatei mit dem Namen "Resources.resx" geschrieben.The following command reads a binary resources file Resources.resources and writes an XML-based output file named Resources.resx.

resgen Resources.resources Resources.resx  

Durch den folgenden Befehl wird die textbasierte Ressourcendatei "StringResources.txt" gelesen und eine XML-basierte Ressourcendatei mit dem Namen "LibraryResources.resx" geschrieben.The following command reads a text-based resources file named StringResources.txt and writes an XML-based resources file named LibraryResources.resx. Eine RESX-Datei kann nicht nur Zeichenfolgenressourcen enthalten, sondern auch zum Speichern anderer Ressourcentypen verwendet werden.In addition to containing string resources, the .resx file could also be used to store non-string resources.

resgen StringResources.txt LibraryResources.resx  

Durch die folgenden beiden Befehle werden nach dem Lesen der XML-basierten Ressourcendatei "Resources.resx" binäre Textdateien mit den Namen "Resources.txt" und "Resources.restext" geschrieben.The following two commands read an XML-based resources file named Resources.resx and write text files named Resources.txt and Resources.restext. Hinweis: Wenn die RESX-Datei eingebettete Objekte aufweist, werden diese nicht fehlerfrei in die Textdateien konvertiert.Note that if the .resx file contains any embedded objects, they will not be accurately converted into the text files.

resgen Resources.resx Resources.txt  
resgen Resources.resx Resources.restext  

Kompilieren oder Konvertieren mehrerer DateienCompiling or Converting Multiple Files

Sie können den /compile-Schalter verwenden, um eine Liste mit Ressourcendateien in einem einzelnen Vorgang von einem Format in ein anderes zu konvertieren.You can use the /compile switch to convert a list of resource files from one format to another in a single operation. Die Syntax lautet:The syntax is:

resgen /compile filename.extension [filename.extension...]  

Durch den folgenden Befehl werden drei Dateien, "StringResources.txt", "TableResources.resw" und "ImageResources.resw", in getrennte RESOURCES-Dateien mit den Namen "StringResources.resources", "TableResources.resources" und "ImageResources.resources" kompiliert.The following command compiles three files, StringResources.txt, TableResources.resw, and ImageResources.resw, into separate .resources files named StringResources.resources, TableResources.resources, and ImageResources.resources.

resgen /compile StringResources.txt TableResources.resx ImageResources.resx  

Exportieren von Ressourcen in eine RESW-DateiExporting Resources to a .resw File

Wenn Sie eine Windows 8.x Store-App entwickeln, sollten Sie Ressourcen aus einer vorhandenen Desktop-App verwenden.If you're developing a Windows 8.x Store app, you may want to use resources from an existing desktop app. Von den beiden Anwendungsarten werden jedoch unterschiedliche Dateiformate unterstützt.However, the two kinds of applications support different file formats. Bei Desktop-Anwendungen werden Ressourcen in Textdaten (".txt" oder ".restext") oder RESX-Dateien in binäre RESOURCES-Dateien kompiliert.In desktop apps, resources in text (.txt or .restext) or .resx files are compiled into binary .resources files. Bei Windows 8.x Store-Apps werden RESW-Dateien in binäre Indexdateien der Paketressource (PRI-Dateien) kompiliert.In Windows 8.x Store apps, .resw files are compiled into binary package resource index (PRI) files. Mithilfe von Resgen.exe können Sie diese Schwierigkeit umgehen, indem Sie Ressourcen aus einer ausführbaren Datei oder einer Satellitenassembly extrahieren und diese in RESW-Dateien schreiben, die beim Entwickeln einer Windows 8.x Store-App verwendet werden können.You can use Resgen.exe to bridge this gap by extracting resources from an executable or a satellite assembly and writing them to one or more .resw files that can be used when developing a Windows 8.x Store app.

Wichtig

Sämtliche zum Einbinden von Ressourcen aus einer portablen Bibliothek in eine Windows 8.x Store-App erforderlichen Konvertierungen werden von Visual Studio automatisch ausgeführt.Visual Studio automatically handles all conversions necessary for incorporating the resources in a portable library into a Windows 8.x Store app. Die Verwendung von Resgen.exe zum direkten Konvertieren der Ressourcen einer Assembly in das RESW-Dateiformat ist nur für Entwickler von Interesse, die eine Windows 8.x Store-App außerhalb von Visual Studio erstellen möchten.Using Resgen.exe directly to convert the resources in an assembly to .resw file format is of interest only to developers who want to develop a Windows 8.x Store app outside of Visual Studio.

Die Syntax zum Generieren von RESW-Dateien aus einer Assembly lautet:The syntax to generate .resw files from an assembly is:

resgen filename.extension  [outputDirectory]  

mit folgenden Parametern:where the parameters are:

filename.extension
Der Name einer .NET Framework-Assembly (eine ausführbare Datei oder DLL-Datei).The name of a .NET Framework assembly (an executable or .DLL). Bei einer Datei ohne Ressourcen werden von Resgen.exe keine Dateien erstellt.If the file contains no resources, Resgen.exe does not create any files.

outputDirectory
Das vorhandene Verzeichnis zum Schreiben der RESW-Dateien.The existing directory to which to write the .resw files. Wenn outputDirectory weggelassen wird, werden RESW-Dateien in das aktuelle Verzeichnis geschrieben.If outputDirectory is omitted, .resw files are written to the current directory. Für jede RESOURCES-Datei in der Assembly wird von Resgen.exe eine RESW-Datei erstellt.Resgen.exe creates one .resw file for each .resources file in the assembly. Der Stammdateiname der RESW-Datei stimmt mit dem Stammnamen der RESOURCES-Datei überein.The root file name of the .resw file is the same as the root name of the .resources file.

Durch den folgenden Befehl wird für jede in MyApp.exe eingebettete RESOURCES-Datei im Verzeichnis "Win8Resources" eine RESW-Datei erstellt:The following command creates a .resw file in the Win8Resources directory for each .resources file embedded in MyApp.exe:

resgen MyApp.exe Win8Resources  

Bedingte Kompilierung von RessourcenConditionally Compiling Resources

Ab .NET Framework 4.5 wird von „Resgen.exe“ die bedingte Kompilierung von Zeichenfolgenressourcen in Textdateien („.txt“ und „.restext“) unterstützt.Starting with the .NET Framework 4.5, Resgen.exe supports conditional compilation of string resources in text (.txt and .restext) files. Hierdurch kann eine einzige textbasierte Ressourcendatei in mehreren Buildkonfigurationen verwendet werden.This enables you to use a single text-based resource file in multiple build configurations.

In einer TXT- oder RESTEXT-Datei verwenden Sie das Konstrukt #ifdef...#endif,In a .txt or .restext file, you use the #ifdef#endif um eine Ressource in die binäre RESOURCES-Datei einzubeziehen. Verwenden Sie das Konstrukt #if !...#endif, um eine Ressource einzubeziehen, wenn ein Symbol nicht definiert ist.construct to include a resource in the binary .resources file if a symbol is defined, and you use the #if !... #endif construct to include a resource if a symbol is not defined. Zur Kompilierzeit definieren Sie anschließend Symbole mithilfe der /define:-Option, gefolgt von einer durch Kommas getrennten Liste von Symbolen.At compile time, you then define symbols by using the /define: option followed by a comma-delimited list of symbols. Beim Vergleich wird die Klein-/Großschreibung berücksichtigt. Die Groß-/Kleinschreibung der durch /define definierten Symbole muss derjenigen in den zu kompilierenden Textdateien entsprechen.The comparison is cased-sensitive; the case of symbols defined by /define must match the case of symbols in the text files to be compiled.

Beispielsweise enthält die folgende Datei "UIResources.restext" eine Zeichenfolgenressource mit dem Namen AppTitle, die abhängig von der Definition der Attribute PRODUCTION, CONSULT oder RETAIL einen von drei Werten annehmen kann.For example, the following file named UIResources.rext includes a string resource named AppTitle that can take one of three values, depending on whether symbols named PRODUCTION, CONSULT, or RETAIL are defined.

#ifdef PRODUCTION  
AppTitle=My Software Company Project Manager
#endif  
#ifdef CONSULT  
AppTitle=My Consulting Company Project Manager  
#endif  
#ifdef RETAIL  
AppTitle=My Retail Store Project Manager  
#endif  
FileMenuName=File  

Anschließend kann die Datei mit folgendem Befehl in eine binäre RESOURCES-Datei kompiliert werden:The file can then be compiled into a binary .resources file with the following command:

resgen /define:CONSULT UIResources.restext  

Hierdurch wird eine RESOURCES-Datei mit zwei Zeichenfolgenressourcen erstellt.This produces a .resources file that contains two string resources. Der Wert der AppTitle-Ressource lautet "My Consulting Company Project Manager".The value of the AppTitle resource is "My Consulting Company Project Manager".

Generieren einer stark typisierten RessourcenklasseGenerating a Strongly Typed Resource Class

Von Resgen.exe werden stark typisierte Ressourcen unterstützt, die durch das Erstellen von Klassen mit einer Reihe statischer schreibgeschützter Eigenschaften den Zugriff auf Ressourcen kapseln.Resgen.exe supports strongly typed resources, which encapsulates access to resources by creating classes that contain a set of static read-only properties. Dies stellt eine Alternative zum direkten Aufrufen der Methoden der ResourceManager-Klasse zwecks Ressourcenabruf dar.This provides an alternative to calling the methods of the ResourceManager class directly to retrieve resources. Die Unterstützung von stark typisierten Ressourcen kann in Resgen.exe über die /str-Option aktiviert werden, die die Funktionalität der StronglyTypedResourceBuilder-Klasse umschließt.You can enable strongly typed resource support by using the /str option in Resgen.exe, which wraps the functionality of the StronglyTypedResourceBuilder class. Wenn Sie die /str-Option angeben, wird von Resgen.exe eine Klasse mit stark typisierten Eigenschaften ausgegeben, die mit den Ressourcen übereinstimmen, auf die der Eingabeparameter verweist.When you specify the /str option, the output of Resgen.exe is a class that contains strongly typed properties that match the resources that are referenced in the input parameter. Diese Klasse ermöglicht den stark typisierten, schreibgeschützten Zugriff auf die in der verarbeiteten Datei verfügbaren Ressourcen.This class provides strongly typed read-only access to the resources that are available in the file processed.

Die Syntax zum Erstellen einer stark typisierten Ressource lautet:The syntax to create a strongly typed resource is:

resgen inputFilename [outputFilename] /str:language[,namespace,[classname[,filename]]] [/publicClass]  

Parameter und Schalter:The parameters and switches are:

inputFilename
Der Dateiname der Ressourcendatei, einschließlich der Erweiterung, für die eine Ressourcenklasse mit starker Typisierung generiert werden soll.The file name, including the extension, of the resource file for which to generate a strongly typed resource class. Bei der Datei kann es sich um eine textbasierte, XML-basierte oder binäre RESOURCES-Datei handeln, die eine der Erweiterungen ".txt", ".restext", ".resw "oder" .resources" aufweisen kann.The file can be a text-based, XML-based, or binary .resources file; it can have an extension of .txt, .restext, .resw, or .resources.

outputFilename
Der Name der Ausgabedatei.The name of the output file. Wenn outputFilename einen Verzeichnispfad aufweist, muss das Verzeichnis vorhanden sein.If outputFilename includes a directory path, the directory must exist. Wenn Sie outputFilename weglassen, wird von Resgen.exe eine RESOURCES-Datei mit dem Stammdateinamen von inputFilename im gleichen Verzeichnis wie inputFilename erstellt.If you omit outputFilename, Resgen.exe creates a .resources file with the root file name of inputFilename in the same directory as inputFilename.

outputFilename kann eine textbasierte, XML-basierte oder binäre RESOURCES-Datei sein.outputFilename can be a text-based, XML-based, or binary .resources file. Wenn sich die Dateierweiterungen von outputFilename und inputFilename unterscheiden, werden die Dateien von Resgen.exe konvertiert.If the file extension of outputFilename is different from the file extension of inputFilename, Resgen.exe performs the file conversion.

Wenn es sich bei der inputFilename um eine RESOURCES-Datei handelt, wird diese von Resgen.exe kopiert, sofern die outputFilename ebenfalls eine RESOURCES-Datei ist.If inputFilename is a .resources file, Resgen.exe copies the .resources file if outputFilename is also a .resources file. Wenn outputFilename weggelassen wird, überschreibt Resgen.exe inputFilename mit einer identischen RESOURCES-Datei.If outputFilename is omitted, Resgen.exe overwrites inputFilename with an identical .resources file.

languagelanguage
Die Sprache, die beim Generieren von Quellcode für die Ressourcenklasse mit starker Typisierung verwendet werden soll.The language in which to generate source code for the strongly typed resource class. Mögliche Werte sind cs, C# und csharp für C#-Code, vb und visualbasic für Visual Basic-Code, vbs und vbscript für VBScript-Code, und c++, mc und cpp für C++-Code.Possible values are cs, C#, and csharp for C# code, vb and visualbasic for Visual Basic code, vbs and vbscript for VBScript code, and c++, mc, and cpp for C++ code.

namespacenamespace
Der Namespace der Ressourcenklasse mit starker Typisierung.The namespace that contains the strongly typed resource class. Die RESOURCES-Datei und die Ressourcenklasse sollten denselben Namespace aufweisen.The .resources file and the resource class should have the same namespace. Informationen zum Angeben des Namespace in outputFilename finden Sie unter Compiling Resources into a Binary File (Kompilieren von Ressourcen in eine Binärdatei).For information about specifying the namespace in the outputFilename, see Compiling Resources into a Binary File. Wenn namespace weggelassen wird, befindet die Ressourcenklasse sich nicht in einem Namespace.If namespace is omitted, the resource class is not contained in a namespace.

classnameclassname
Der Name der stark typisierten Ressourcenklasse.The name of the strongly typed resource class. Dieser sollte dem Stammnamen der RESOURCES-Datei entsprechen.This should correspond to the root name of the .resources file. Wenn von Resgen.exe z. B. eine RESOURCES-Datei mit dem Namen "MyCompany.Libraries.Strings.resources" generiert wird, lautet der Name der Ressourcenklasse mit starker Typisierung "Strings".For example, if Resgen.exe generates a .resources file named MyCompany.Libraries.Strings.resources, the name of the strongly typed resource class is Strings. Wenn der classname weggelassen wird, wird die generierte Klasse vom Stammnamen der outputFilename abgeleitet.If classname is omitted, the generated class is derived from the root name of outputFilename. Wenn der outputFilename weggelassen wird, wird die generierte Klasse vom Stammnamen der inputFilename abgeleitet.If outputFilename is omitted, the generated class is derived from the root name of inputFilename.

Ein classname darf keine ungültigen Zeichen aufweisen, z.B. eingebettete Leerzeichen.classname cannot contain invalid characters such as embedded spaces. Wenn classname eingebettete Leerzeichen enthält oder classname standardmäßig aus inputFilename generiert wird und inputFilename eingebettete Leerzeichen enthält, ersetzt die Datei „Resgen.exe“ alle ungültigen Zeichen durch Unterstriche (_).If classname contains embedded spaces, or if classname is generated by default from inputFilename, and inputFilename contains embedded spaces, Resgen.exe replaces all invalid characters with an underscore (_).

filenamefilename
Der Name der Klassendatei.The name of the class file.

/publicclass
Macht die Ressourcenklasse mit starker Typisierung anstatt internal (in C#) oder Friend (in Visual Basic) öffentlich.Makes the strongly typed resource class public rather than internal (in C#) or Friend (in Visual Basic). Dies ermöglicht den Zugriff auf die Ressourcen von außerhalb der Assembly, in der sie eingebettet sind.This allows the resources to be accessed from outside the assembly in which they are embedded.

Wichtig

Beim Erstellen einer Ressourcenklasse mit starker Typisierung muss der Name der RESOURCES-Datei mit dem Namespace- und Klassennamen des generierten Codes übereinstimmen.When you create a strongly typed resource class, the name of your .resources file must match the namespace and class name of the generated code. In Resgen.exe können jedoch Optionen angegeben werden, durch die eine RESOURCES-Datei mit inkompatiblem Namen erstellt wird.However, Resgen.exe allows you to specify options that produce a .resources file that has an incompatible name. Um dieses Verhalten zu umgehen, benennen Sie die Ausgabedatei um, nachdem sie generiert wurde.To work around this behavior, rename the output file after it has been generated.

Die Ressourcenklasse mit starker Typisierung verfügt über die folgenden Member:The strongly typed resource class has the following members:

  • Ein parameterloser Konstruktor zum Instanziieren der Ressourcenklasse mit starker Typisierung.A parameterless constructor, which can be used to instantiate the strongly typed resource class.

  • Eine static-Eigenschaft (C#) oder Shared-Eigenschaft (Visual Basic) und eine schreibgeschützte ResourceManager-Eigenschaft, von der die ResourceManager-Instanz zum Verwalten der Ressource mit starker Typisierung zurückgegeben wird.A static (C#) or Shared (Visual Basic) and read-only ResourceManager property, which returns the ResourceManager instance that manages the strongly typed resource.

  • Eine statische Culture-Eigenschaft zum Festlegen der Kultur für das Abrufen von Ressourcen.A static Culture property, which allows you to set the culture used for resource retrieval. Standardmäßig lautet deren Wert null, was bedeutet, dass die aktuelle Benutzeroberflächenkultur verwendet wird.By default, its value is null, which means that the current UI culture is used.

  • Ein static-Eigenschaft (C#) oder Shared-Eigenschaft (Visual Basic) und eine schreibgeschützte Eigenschaft für jede Ressource in der RESOURCES-Datei.One static (C#) or Shared (Visual Basic) and read-only property for each resource in the .resources file. Der Eigenschaftsname stellt den Namen der Ressource dar.The name of the property is the name of the resource.-

Durch den folgenden Befehl wird beispielsweise eine Ressourcendatei mit dem Namen "StringResources.txt" in "StringResources.resources" kompiliert und eine StringResources-Klasse in der Visual Basic-Quellcodedatei "StringResources.vb" generiert, die für den Zugriff auf den Ressourcen-Manager verwendet werden kann.For example, the following command compiles a resource file named StringResources.txt into StringResources.resources and generates a class named StringResources in a Visual Basic source code file named StringResources.vb that can be used to access the Resource Manager.

resgen StringResources.txt /str:vb,,StringResources

Siehe auchSee also