Resgen.exe (Generador de archivos de recursos)Resgen.exe (Resource File Generator)

El Generador de archivos de recursos (Resgen.exe) convierte archivos de texto (.txt o .restext) y archivos recursos basados en XML (.resx) en archivos binarios de Common Language Runtime (.resources) que se pueden incrustar en un archivo ejecutable binario o en un ensamblado satélite.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. (Vea Creating Resource Files (Crear archivos de recursos)).(See Creating Resource Files.)

Resgen.exe es una utilidad de conversión de recursos de uso general que realiza las tareas siguientes:Resgen.exe is a general-purpose resource conversion utility that performs the following tasks:

  • Convierte archivos .txt o .restext en archivos .resources o .resx.Converts .txt or .restext files to .resources or .resx files. El formato de los archivos .restext es idéntico al formato de los archivos .txt.(The format of .restext files is identical to the format of .txt files. Sin embargo, la extensión .restext ayuda a identificar más fácilmente los archivos de texto que contienen definiciones de recursos.However, the .restext extension helps you identify text files that contain resource definitions more easily.)

  • Convierte archivos .resources en archivos de texto o archivos .resx.Converts .resources files to text or .resx files.

  • Convierte archivos .resx en archivos de texto o archivos .resources.Converts .resx files to text or .resources files.

  • Extrae los recursos de cadena de un ensamblado en un archivo .resw para poder usarlos en una aplicación de la Tienda Windows 8.xWindows 8.x Store.Extracts the string resources from an assembly into a .resw file that is suitable for use in a Tienda Windows 8.xWindows 8.x Store app.

  • Crea una clase fuertemente tipada que proporciona acceso a cada uno de los recursos con nombre y a la instancia de ResourceManager.Creates a strongly typed class that provides access to individual named resources and to the ResourceManager instance.

Si, por cualquier motivo, se produce un error en Resgen.exe, el valor devuelto será –1.If Resgen.exe fails for any reason, the return value is –1.

Para obtener ayuda sobre Resgen.exe, use el comando siguiente sin especificar ninguna opción; podrá ver las opciones y la sintaxis de los comandos de Resgen.exe: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  

También puede usar el modificador /?.You can also use the /? switch:

resgen /?  

Si usa Resgen.exe para generar archivos .resources binarios, puede usar un compilador de lenguaje para incrustar los archivos binarios en ensamblados ejecutables, o puede usar la herramienta Assembly Linker (Al.exe) para compilarlos en ensamblados satélite.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.

Esta herramienta se instala automáticamente con Visual Studio.This tool is automatically installed with Visual Studio. Para ejecutar la herramienta, utilice el Símbolo del sistema para desarrolladores (o el Símbolo del sistema de Visual Studio en Windows 7).To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7). Para más información, consulte Símbolos del sistema.For more information, see Command Prompts.

En el símbolo del sistema, escriba lo siguiente:At the command prompt, type the following:

SintaxisSyntax

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

ParámetrosParameters

Parámetro o modificadorParameter or switch DescripciónDescription
/define: symbol1[, symbol2,...]/define: symbol1[, symbol2,...] A partir de .NET Framework 4.5.NET Framework 4.5, se admite la compilación condicional en archivos de recursos basados en texto (.txt o .restext).Starting with the .NET Framework 4.5.NET Framework 4.5, supports conditional compilation in text-based (.txt or .restext) resource files. Si symbol corresponde a un símbolo incluido en el archivo de texto de entrada de una construcción #ifdef, el recurso de cadena asociado se incluye en el archivo .resources.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. Si el archivo de texto de entrada incluye una instrucción #if ! con un símbolo que no se ha definido mediante el modificador /define, el recurso de cadena asociado se incluye en el archivo de recursos.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.

/define se omite si se usa con archivos de que no son de texto./define is ignored if it is used with non-text files. Lo símbolos distinguen entre mayúsculas y minúsculas.Symbols are case-sensitive.

Para obtener más información sobre esta opción, vea Compilar recursos de manera condicional más adelante en este tema.For more information about this option, see Conditionally Compiling Resources later in this topic.
useSourcePath Especifica que el directorio actual del archivo de entrada se usará para resolver las rutas de acceso relativas.Specifies that the input file's current directory is to be used to resolve relative file paths.
/compile Permite especificar varios archivos .resx o de texto para convertirlos en varios archivos .resources en una única operación masiva.Enables you to specify multiple .resx or text files to convert to multiple .resources files in a single bulk operation. Si no especifica esta opción, solo podrá especificar un argumento de archivo de entrada.If you do not specify this option, you can specify only one input file argument. Los archivos de salida se denominan filename.resources.Output files are named filename.resources.

Esta opción no se puede combinar con la opción /str:.This option cannot be used with the /str: option.

Para obtener más información sobre esta opción, vea Compilar o convertir varios archivos más adelante en este tema.For more information about this option, see Compiling or Converting Multiple Files later in this topic.
/r: assembly/r: assembly Hace referencia a los metadatos de los archivos de ensamblado especificados.References metadata from the specified assembly. Se usa al convertir los archivos .resx y permite que Resgen.exe serialice o deserialice los recursos de objeto.It is used when converting .resx files and allows Resgen.exe to serialize or deserialize object resources. Se parece a las opciones /reference: o /r: de los compiladores de C# y Visual Basic.It is similar to the /reference: or /r: options for the C# and Visual Basic compilers.
filename.extension Especifica el nombre del archivo de entrada que se va a convertir.Specifies the name of the input file to convert. Si usa la primera de las dos sintaxis de línea de comandos (la más larga) que aparecen encima de esta tabla, el parámetro extension debe ser uno de los siguientes:If you're using the first, lengthier command-line syntax presented before this table, extension must be one of the following:

.txt o .restext.txt or .restext
Archivo de texto que se convertirá en un archivo .resources o en un archivo .resx.A text file to convert to a .resources or a .resx file. Los archivos de texto solo pueden contener recursos de cadena.Text files can contain only string resources. Para obtener información sobre el formato de archivo, vea la sección sobre recursos en archivos de texto de Creating Resource Files (Crear archivos de recursos).For information about the file format, see the "Resources in Text Files" section of Creating Resource Files.

.resx.resx
Archivo de recursos basado en XML que se convertirá en un archivo .resources o en un archivo de texto (.txt o .restext).An XML-based resource file to convert to a .resources or a text (.txt or .restext) file.

.resources.resources
Archivo de recursos binario que se convertirá en un archivo .resx o en un archivo de texto (.txt o .restext).A binary resource file to convert to a .resx or a text (.txt or .restext) file.

Si usa la segunda de las dos sintaxis de línea de comandos (la más corta) que aparecen encima de esta tabla, el parámetro, extension debe ser el siguiente:If you're using the second, shorter command-line syntax presented before this table, extension must be the following:

.exe o .dll.exe or .dll
Ensamblado de .NET Framework. (archivo ejecutable o biblioteca) cuyos recursos de cadena se extraen en un archivo .resw para usarlos en el desarrollo de aplicaciones de la Tienda Windows 8.xWindows 8.x Store.A .NET Framework assembly (executable or library) whose string resources are to be extracted to a .resw file for use in developing Tienda Windows 8.xWindows 8.x Store apps.
outputFilename.extension Especifica el nombre y el tipo de archivo de recursos que se va a crear.Specifies the name and type of the resource file to create.

Este argumento es opcional cuando la conversión se realiza de un archivo .txt, .restext o .resx a un archivo .resources.This argument is optional when converting from a .txt, .restext, or .resx file to a .resources file. Si no se especifica outputFilename, Resgen.exe anexa una extensión .resources al filename de entrada y escribe el archivo en el directorio que contiene filename,extension.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.

El argumento outputFilename.extension es obligatorio cuando se realiza la conversión de un archivo .resources.The outputFilename.extension argument is mandatory when converting from a .resources file. Cuando se convierte un archivo .resources en un archivo de recursos basado en XML, se debe especificar un nombre de archivo con la extensión .resx.Specify a file name with the .resx extension when converting a .resources file to an XML-based resource file. Cuando se convierte un archivo .resources en un archivo de texto, se debe especificar un nombre de archivo con la extensión .txt o .restext.Specify a file name with the .txt or .restext extension when converting a .resources file to a text file. Solo se debe convertir un archivo .resources en un archivo .txt cuando el archivo .resources contiene únicamente valores de cadena.You should convert a .resources file to a .txt file only when the .resources file contains only string values.
outputDirectory Para las aplicaciones de la Tienda Windows 8.xWindows 8.x Store, especifica el directorio en el que se escribirá un archivo .resw que contiene los recursos de cadena de filename.extension.For Tienda Windows 8.xWindows 8.x Store apps, specifies the directory in which a .resw file that contains the string resources in filename.extension will be written. outputDirectory ya debe existir.outputDirectory must already exist.
/str: language[,namespace[,classname[,filename]]]/str: language[,namespace[,classname[,filename]]] Crea un archivo de clase de recursos fuertemente tipados en el lenguaje de programación especificado en la opción language.Creates a strongly typed resource class file in the programming language specified in the language option. language puede constar de uno de los literales siguientes:language can consist of one of the following literals:

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

La opción namespace especifica el espacio de nombres predeterminado del proyecto, la opción classname especifica el nombre de la clase generada, y la opción filename especifica el nombre del archivo de clase.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.

La opción /str: solo permite un archivo de entrada, de modo que no se puede usar con la opción /compile.The /str: option allows only one input file, so it cannot be used with the /compile option.

Si se especifica namespace, pero no se especifica classname, el nombre de clase se deriva del nombre del archivo de salida (por ejemplo, los caracteres de subrayado se sustituyen por puntos).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). En consecuencia, es posible que los recursos fuertemente tipados no funcionen.The strongly typed resources might not work correctly as a result. Para evitarlo, especifique tanto el nombre de clase como el nombre del archivo de salida.To avoid this, specify both class name and output file name.

Para obtener más información sobre esta opción, vea Generar una clase de recursos fuertemente tipados más adelante en este tema.For more information about this option, see Generating a Strongly Typed Resource Class later in this topic.
/publicClass Crea una clase de recursos fuertemente tipados como una clase pública.Creates a strongly typed resource class as a public class. De forma predeterminada, la clase de recursos es internal en C# y Friend en Visual Basic.By default, the resource class is internal in C# and Friend in Visual Basic.

Esta opción se omite si no se usa la opción /str:.This option is ignored if the /str: option is not used.

Resgen.exe y los tipos de archivos de recursosResgen.exe and Resource File Types

Para que Resgen.exe convierta correctamente los recursos, los archivos de texto y los archivos .resx deben tener el formato correcto.In order for Resgen.exe to successfully convert resources, text and .resx files must follow the correct format.

Archivos de texto (.txt y .restext)Text (.txt and .restext) Files

Los archivos de texto (.txt o .restext) solo pueden contener recursos de cadena.Text (.txt or .restext) files may contain only string resources. Los recursos de cadena son útiles cuando se crea una aplicación que debe tener cadenas traducidas a varios idiomas.String resources are useful if you are writing an application that must have strings translated into several languages. Por ejemplo, mediante el recurso de cadena apropiado, se pueden adaptar las cadenas de opciones de menú a la configuración regional de forma sencilla.For example, you can easily regionalize menu strings by using the appropriate string resource. Resgen.exe lee los archivos de texto que contienen pares nombre-valor, donde el nombre es una cadena que describe el recurso y el valor es la propia cadena de recursos.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.

Nota

Para obtener información sobre el formato de los archivos .txt y .restext, vea la sección sobre recursos en archivos de texto de Creating Resource Files (Crear archivos de recursos).For information about the format of .txt and .restext files, see the "Resources in Text Files" section of Creating Resource Files.

Los archivos de texto que contienen recursos se deben guardar con codificación UTF-8 o Unicode (UTF-16), a menos que contengan únicamente caracteres latinos básicos (hasta 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). Resgen.exe quita los caracteres ANSI extendidos cuando procesa un archivo de texto guardado con codificación ANSI.Resgen.exe removes extended ANSI characters when it processes a text file that is saved using ANSI encoding.

Resgen.exe comprueba si en el archivo de texto existen nombres de recursos duplicados.Resgen.exe checks the text file for duplicate resource names. Si el archivo de texto contiene nombres de recursos duplicados, Resgen.exe emite una advertencia y omite el segundo valor.If the text file contains duplicate resource names, Resgen.exe will emit a warning and ignore the second value.

Archivos .resx.resx Files

El formato de archivo de recursos .resx consiste en entradas XML.The .resx resource file format consists of XML entries. En estas entradas XML puede especificar recursos de cadena, tal y como haría en los archivos de texto.You can specify string resources within these XML entries, as you would in text files. Una ventaja importante de los archivos .resx sobre los archivos de texto es que también permiten especificar o incrustar objetos.A primary advantage of .resx files over text files is that you can also specify or embed objects. Cuando se ve un archivo .resx, se puede observar la forma binaria de un objeto incrustado (por ejemplo, una imagen) cuando esta información binaria forma parte del manifiesto del recurso.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. Al igual que los archivos de texto, los archivos .resx se pueden abrir con un editor de texto (como el Bloc de notas o Microsoft Word) y escribir, analizar y manipular el contenido.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. Tenga en cuenta que esto requiere un conocimiento profundo de las etiquetas XML y de la estructura de archivos .resx.Note that this requires a good knowledge of XML tags and the .resx file structure. Para obtener más detalles sobre el formato de archivo .resx, vea la sección sobre recursos en archivos .resx de Creating Resource Files (Crear archivos de recursos).For more details on the .resx file format, see the "Resources in .resx Files" section of Creating Resource Files.

Para crear un archivo .resources que contenga objetos incrustados que no son de cadena, debe usar Resgen.exe para convertir un archivo .resx que contenga objetos, o bien debe agregar los recursos de objeto al archivo directamente desde el código, utilizando los métodos que proporciona la clase ResourceWriter.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.

Si el archivo .resx o .resources contiene objetos y usa Resgen.exe para convertirlo en un archivo de texto, todos los recursos de cadena se convertirán correctamente, pero los tipos de datos de los objetos que no son de cadena también se escribirán en el archivo como cadenas.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. Se perderán los objetos incrustados en la conversión y Resgen.exe notificará el error al recuperar los recursos.You will lose the embedded objects in the conversion, and Resgen.exe will report that an error occurred in retrieving the resources.

Convertir tipos de archivos de recursosConverting Between Resources File Types

Al intentar convertir tipos de archivos de recursos en otros diferentes, es posible que Resgen.exe no pueda realizar la conversión o que pierda información sobre recursos específicos, en función de los tipos de archivos de origen y de destino.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. En la tabla siguiente se especifican los tipos de conversiones que se pueden realizar entre los distintos tipos de archivos de recursos.The following table specifies the types of conversions that are successful when converting from one resource file type to another.

Conversión deConvert from A archivo de textoTo text file A archivo .resxTo .resx file A archivo .reswTo .resw file A archivo .resourcesTo .resources file
Archivo de texto (.txt o .restext)Text (.txt or .restext) file -- Sin problemasNo issues No compatiblesNot supported Sin problemasNo issues
Archivo .resx.resx file Se produce un error en la conversión si el archivo contiene recursos de no son de cadena (incluidos vínculos de archivo)Conversion fails if file contains non-string resources (including file links) -- No compatiblesNot supported Sin problemasNo issues
Archivo .resources.resources file Se produce un error en la conversión si el archivo contiene recursos de no son de cadena (incluidos vínculos de archivo)Conversion fails if file contains non-string resources (including file links) Sin problemasNo issues No compatiblesNot supported --
Ensamblado .exe o .dll.exe or .dll assembly No compatiblesNot supported No compatiblesNot supported Solo los recursos de cadena (incluidos los nombres de ruta de acceso) se reconocen como recursosOnly string resources (including path names) are recognized as resources No compatiblesNot supported

Realizar tareas específicas de Resgen.exePerforming Specific Resgen.exe Tasks

Puede usar la herramienta Resgen.exe de varias maneras: para compilar un archivo de recursos basado en texto o en XML en un archivo binario, para realizar conversiones entre los distintos formatos de archivo de recursos, y para generar una clase que incluya la funcionalidad ResourceManager y proporcione acceso a los recursos.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. En esta sección se proporciona información detallada sobre cada tarea.This section provides detailed information about each task:

Compilar recursos en un archivo binarioCompiling Resources into a Binary File

El uso más común de Resgen.exe es compilar un archivo de recursos basado en texto (un archivo .txt o .restext) o un archivo de recursos basado en XML (un archivo .resx) en un archivo .resources binario.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. El archivo de salida se puede insertar en un ensamblado principal mediante un compilador de lenguaje, o en un ensamblado satélite mediante Assembly Linker (AL.exe).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).

La sintaxis para compilar un archivo de recursos es la siguiente:The syntax to compile a resource file is:

resgen inputFilename [outputFilename]   

donde los parámetros son:where the parameters are:

inputFilename
El nombre de archivo, incluida la extensión, del archivo de recursos que se va a compilar.The file name, including the extension, of the resource file to compile. Resgen.exe compila únicamente archivos con la extensión .txt, .restext o .resx.Resgen.exe only compiles files with extensions of .txt, .restext, or .resx.

outputFilename
Nombre del archivo de salida.The name of the output file. Si omite outputFilename, Resgen.exe crea un archivo .resources con el mismo nombre de archivo raíz que inputFilename y lo sitúa en el directorio en el que se encuentra inputFilename.If you omit outputFilename, Resgen.exe creates a .resources file with the root file name of inputFilename in the same directory as inputFilename. Si outputFilename incluye una ruta de acceso a un directorio, dicho directorio debe existir.If outputFilename includes a directory path, the directory must exist.

Proporcione un espacio de nombres completo para el archivo .resources. Inclúyalo en el nombre de archivo y sepárelo del nombre de archivo raíz mediante un punto.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. Por ejemplo, si outputFilename es MyCompany.Libraries.Strings.resources, el espacio de nombres es MyCompany.Libraries.For example, if outputFilename is MyCompany.Libraries.Strings.resources, the namespace is MyCompany.Libraries.

El comando siguiente lee los pares nombre-valor de Resources.txt y escribe un archivo .resources binario denominado Resources.resources.The following command reads the name/value pairs in Resources.txt and writes a binary .resources file named Resources.resources. Dado que el nombre del archivo de salida no se especifica de forma explícita, de forma predeterminada recibe el mismo nombre que el archivo de entrada.Because the output file name is not specified explicitly, it receives the same name as the input file by default.

resgen Resources.txt   

El comando siguiente lee los pares nombre-valor de Resources.restext y escribe un archivo de recursos binario denominado StringResources.resources.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  

El comando siguiente lee un archivo de entrada basado en XML denominado Resources.resx y escribe un archivo .resources binario denominado Resources.resources.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  

Convertir tipos de archivos de recursosConverting Between Resource File Types

Además de compilar archivos de recursos basados en texto o en XML en archivos .resources binarios, Resgen.exe puede convertir cualquier tipo de archivo compatible en cualquier otro tipo de archivo compatible.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. Esto significa que puede realizar las conversiones siguientes:This means that it can perform the following conversions:

  • Archivos .txt y .restext en archivos .resx..txt and .restext files to .resx files.

  • Archivos .resx en archivos .txt y .restext..resx files to .txt and .restext files.

  • Archivos .resources en archivos .txt y .restext..resources files to .txt and .restext files.

  • Archivos .resources en archivos .resx..resources files to .resx files.

La sintaxis es la misma que la mostrada en la sección anterior.The syntax is the same as that shown in the previous section.

Además, puede usar Resgen.exe para convertir recursos incrustados de un ensamblado de .NET Framework en un archivo .resw para poder usarlo en aplicaciones de la Tienda Windows 8.xWindows 8.x Store.In addition, you can use Resgen.exe to convert embedded resources in a .NET Framework assembly to a .resw file tor Tienda Windows 8.xWindows 8.x Store apps.

El comando siguiente lee un archivo de recursos binario denominado Resources.resources y escribe un archivo de entrada basado en XML denominado Resources.resx.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  

El comando siguiente lee un archivo de recursos basado en texto denominado StringResources.txt y escribe un archivo de recursos basado en XML denominado LibraryResources.resx.The following command reads a text-based resources file named StringResources.txt and writes an XML-based resources file named LibraryResources.resx. Además de contener recursos de cadena, el archivo .resx también se puede usar para almacenar recursos que no son de cadena.In addition to containing string resources, the .resx file could also be used to store non-string resources.

resgen StringResources.txt LibraryResources.resx  

Los dos comandos siguientes leen un archivo de recursos basado en XML denominado Resources.resx y escriben archivos de texto denominados Resources.txt y Resources.restext.The following two commands read an XML-based resources file named Resources.resx and write text files named Resources.txt and Resources.restext. Tenga en cuenta que si el archivo .resx contiene objetos incrustados, no se convertirán de forma precisa en los archivos de texto.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  

Compilar o convertir varios archivosCompiling or Converting Multiple Files

Puede usar el modificador /compile para convertir el formato de una lista de archivos de recursos en otro formato en una única operación.You can use the /compile switch to convert a list of resource files from one format to another in a single operation. La sintaxis es la siguiente:The syntax is:

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

El comando siguiente compila tres archivos, StringResources.txt, TableResources.resw e ImageResources.resw, en archivos .resources independientes denominados StringResources.resources, TableResources.resources e ImageResources.resources.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  

Exportar recursos a un archivo .reswExporting Resources to a .resw File

Si va a desarrollar una aplicación de la Tienda Windows 8.xWindows 8.x Store, quizás desee usar recursos de una aplicación de escritorio existente.If you're developing a Tienda Windows 8.xWindows 8.x Store app, you may want to use resources from an existing desktop app. Sin embargo, los dos tipos de aplicaciones admiten formatos de archivo diferentes.However, the two kinds of applications support different file formats. En las aplicaciones de escritorio, los recursos de los archivos de texto (.txt o .restext) o de los archivos .resx se compilan en archivos .resources binarios.In desktop apps, resources in text (.txt or .restext) or .resx files are compiled into binary .resources files. En las aplicaciones de la Tienda Windows 8.xWindows 8.x Store, los archivos .resw se compilan en archivos de índice de recursos del paquete (PRI) binarios.In Tienda Windows 8.xWindows 8.x Store apps, .resw files are compiled into binary package resource index (PRI) files. Puede usar la herramienta Resgen.exe cubrir esta carencia extrayendo los recursos de un archivo ejecutable o un ensamblado satélite y escribiéndolos en uno o varios archivos .resw que se podrán usar para desarrollar una aplicación de la Tienda Windows 8.xWindows 8.x Store.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 Tienda Windows 8.xWindows 8.x Store app.

Importante

Visual Studio controla automáticamente todas las conversiones necesarias para incorporar los recursos de una biblioteca portable en una aplicación de la Tienda Windows 8.xWindows 8.x Store.Visual Studio automatically handles all conversions necessary for incorporating the resources in a portable library into a Tienda Windows 8.xWindows 8.x Store app. El uso de Resgen.exe para convertir directamente los recursos de un ensamblado al formato de archivo .resw solo es de interés para los desarrolladores que desean desarrollar una aplicación de la Tienda Windows 8.xWindows 8.x Store fuera de Visual Studio.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 Tienda Windows 8.xWindows 8.x Store app outside of Visual Studio.

La sintaxis para generar archivos .resw a partir de un ensamblado es la siguiente:The syntax to generate .resw files from an assembly is:

resgen filename.extension  [outputDirectory]  

donde los parámetros son:where the parameters are:

filename.extension
El nombre de un ensamblado de .NET Framework (un archivo ejecutable o un archivo .DLL).The name of a .NET Framework assembly (an executable or .DLL). Si el archivo no contiene ningún recurso, Resgen.exe no crea ningún archivo.If the file contains no resources, Resgen.exe does not create any files.

outputDirectory
El directorio existente en el que se escribirán los archivos .resw.The existing directory to which to write the .resw files. Si se omite outputDirectory, los archivos .resw se escriben en el directorio actual.If outputDirectory is omitted, .resw files are written to the current directory. Resgen.exe crea un archivo .resw para cada archivo .resources del ensamblado.Resgen.exe creates one .resw file for each .resources file in the assembly. El nombre de archivo raíz del archivo .resw es el mismo que el nombre raíz del archivo .resources.The root file name of the .resw file is the same as the root name of the .resources file.

El siguiente comando crea un archivo .resw en el directorio Win8Resources para cada archivo .resources incrustado en MyApp.exe:The following command creates a .resw file in the Win8Resources directory for each .resources file embedded in MyApp.exe:

resgen MyApp.exe Win8Resources  

Compilar recursos de manera condicionalConditionally Compiling Resources

A partir de .NET Framework 4.5.NET Framework 4.5, Resgen.exe admite la compilación condicional de recursos de cadena en archivos de texto (.txt y .restext).Starting with the .NET Framework 4.5.NET Framework 4.5, Resgen.exe supports conditional compilation of string resources in text (.txt and .restext) files. Esto permite usar un único archivo de recursos basado en texto en varias configuraciones de compilación.This enables you to use a single text-based resource file in multiple build configurations.

En un archivo .txt o .restext, use la construcción #ifdef#endifIn a .txt or .restext file, you use the #ifdef#endif para incluir un recurso en el archivo .resources binario si se ha definido un símbolo, y use la construcción #if !... #endif para incluir un recurso si no se ha definido ningún símbolo.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. En tiempo de compilación, los símbolos se definen mediante la opción /define: seguida de una lista de símbolos delimitados por comas.At compile time, you then define symbols by using the /define: option followed by a comma-delimited list of symbols. La comparación distingue entre mayúsculas y minúsculas. El formato de mayúsculas y minúsculas definido en /define debe coincidir con el de los archivos de texto que se van a compilar.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.

Por ejemplo, el siguiente archivo denominado UIResources.rext incluye un recurso de cadena denominado AppTitle que puede tomar uno de tres valores posibles dependiendo de si se han definido los símbolos denominados PRODUCTION, CONSULT o RETAIL.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  

A continuación, el archivo se puede compilar en un archivo .resources binario con el comando siguiente:The file can then be compiled into a binary .resources file with the following command:

resgen /define:CONSULT UIResources.restext  

Esto genera un archivo .resources que contiene dos recursos de cadena.This produces a .resources file that contains two string resources. El valor del recurso AppTitle es "My Consulting Company Project Manager".The value of the AppTitle resource is "My Consulting Company Project Manager".

Generar una clase de recursos fuertemente tipadosGenerating a Strongly Typed Resource Class

Resgen.exe admite recursos fuertemente tipados y encapsula el acceso a los recursos mediante la creación de clases que contienen un conjunto de propiedades estáticas de solo lectura.Resgen.exe supports strongly typed resources, which encapsulates access to resources by creating classes that contain a set of static read-only properties. A la hora de recuperar recursos, esto proporciona una alternativa a la llamada a los métodos de la clase ResourceManager directamente.This provides an alternative to calling the methods of the ResourceManager class directly to retrieve resources. Para habilitar la compatibilidad con los recursos fuertemente tipados en Resgen.exe, use la opción /str, que incluye la funcionalidad de la clase StronglyTypedResourceBuilder.You can enable strongly typed resource support by using the /str option in Resgen.exe, which wraps the functionality of the StronglyTypedResourceBuilder class. Cuando se especifica la opción /str, el resultado de Resgen.exe es una clase que contiene propiedades fuertemente tipadas que coinciden con los recursos a los que se hace referencia en el parámetro de entrada.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. Esta clase proporciona acceso de solo lectura fuertemente tipado a los recursos que están disponibles en el archivo procesado.This class provides strongly typed read-only access to the resources that are available in the file processed.

La sintaxis para crear un recurso fuertemente tipado es la siguiente:The syntax to create a strongly typed resource is:

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

Los parámetros y los modificadores son los siguientes:The parameters and switches are:

inputFilename
El nombre de archivo, incluida la extensión, del archivo de recursos para el que se generará una clase de recursos fuertemente tipados.The file name, including the extension, of the resource file for which to generate a strongly typed resource class. El archivo puede ser un archivo basado en texto o en XML, o un archivo .resources binario, y puede tener la extensión .txt, .restext, .resw o .resources.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
Nombre del archivo de salida.The name of the output file. Si outputFilename incluye una ruta de acceso a un directorio, dicho directorio debe existir.If outputFilename includes a directory path, the directory must exist. Si omite outputFilename, Resgen.exe crea un archivo .resources con el mismo nombre de archivo raíz que inputFilename y lo sitúa en el directorio en el que se encuentra inputFilename.If you omit outputFilename, Resgen.exe creates a .resources file with the root file name of inputFilename in the same directory as inputFilename.

outputFilename puede ser un archivo basado en texto, un archivo basado en XML o un archivo .resources. binario.outputFilename can be a text-based, XML-based, or binary .resources file. Si la extensión de archivo de outputFilename es distinta de la extensión de archivo de inputFilename, Resgen.exe realiza la conversión del archivo.If the file extension of outputFilename is different from the file extension of inputFilename, Resgen.exe performs the file conversion.

Si inputFilename es un archivo .resources, Resgen.exe lo copia si outputFilename también es un archivo .resources.If inputFilename is a .resources file, Resgen.exe copies the .resources file if outputFilename is also a .resources file. Si se omite outputFilename, Resgen.exe sobrescribe inputFilename con un archivo .resources idéntico.If outputFilename is omitted, Resgen.exe overwrites inputFilename with an identical .resources file.

languagelanguage
El lenguaje en el que se genera el código fuente para la clase de recursos fuertemente tipados.The language in which to generate source code for the strongly-typed resource class. Los valores posibles son cs, C# y csharp para código de C#, vb y visualbasic para código de Visual Basic, vbs y vbscript para código VBScript, y c++, mc y cpp para código de C++.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
El espacio de nombres que contiene la clase de recursos fuertemente tipados.The namespace that contains the strongly typed resource class. El archivo .resources y la clase de recursos deben tener el mismo espacio de nombres.The .resources file and the resource class should have the same namespace. Para obtener información sobre la especificación del espacio de nombres en outputFilename, vea Compilar recursos en un archivo binario.For information about specifying the namespace in the outputFilename, see Compiling Resources into a Binary File. Si se omite namespace, la clase de recursos no está contenida en un espacio de nombres.If namespace is omitted, the resource class is not contained in a namespace.

classnameclassname
El nombre de la clase de recursos fuertemente tipados.The name of the strongly typed resource class. Este se debe corresponder con el nombre raíz del archivo .resources.This should correspond to the root name of the .resources file. Por ejemplo, si Resgen.exe genera un archivo .resources denominado MyCompany.Libraries.Strings.resources, el nombre de la clase de recursos fuertemente tipados es 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. Si se omite classname, la clase generada se deriva del nombre raíz de outputFilename.If classname is omitted, the generated class is derived from the root name of outputFilename. Si se omite outputFilename, la clase generada se deriva del nombre raíz de inputFilename.If outputFilename is omitted, the generated class is derived from the root name of inputFilename.

classname no puede contener caracteres no válidos, como espacios insertados.classname cannot contain invalid characters such as embedded spaces. Si classname contiene espacios insertados, o si classname se genera de forma predeterminada a partir de inputFilename, e inputFilename contiene espacios insertados, Resgen.exe reemplaza todos los caracteres no válidos por un carácter de subrayado ().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
Nombre del archivo de clase.The name of the class file.

/publicclass
Convierte la clase de recursos fuertemente tipados en una clase pública en lugar de internal (en C#) o Friend (en Visual Basic).Makes the strongly typed resource class public rather than internal (in C#) or Friend (in Visual Basic). Esto permite tener acceso a los recursos desde fuera del ensamblado en el que están incrustados.This allows the resources to be accessed from outside the assembly in which they are embedded.

Importante

Cuando se crea una clase de recursos fuertemente tipados, el nombre del archivo .resources debe coincidir con el espacio de nombres y el nombre de clase del código generado.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. Sin embargo, Resgen.exe permite especificar opciones que generan un archivo .resources con un nombre incompatible.However, Resgen.exe allows you to specify options that produce a .resources file that has an incompatible name. Para evitar este comportamiento, cambie el nombre del archivo de salida tras su generación.To work around this behavior, rename the output file after it has been generated.

La clase de recursos fuertemente tipados se compone de los elementos siguientes:The strongly typed resource class has the following members:

  • Un constructor sin parámetros, que se puede usar para crear instancias de la clase de recursos fuertemente tipados.A parameterless constructor, which can be used to instantiate the strongly typed resource class..

  • Una propiedad static (C#) o Shared (Visual Basic) de solo lectura de ResourceManager, que devuelve la instancia de ResourceManager que administra el recurso fuertemente tipado.A static (C#) or Shared (Visual Basic) and read-only ResourceManager property, which returns the ResourceManager instance that manages the strongly typed resource.

  • Una propiedad estática Culture, que permite establecer la referencia cultural usada para la recuperación de los recursos.A static Culture property, which allows you to set the culture used for resource retrieval. De manera predeterminada, su valor es null, lo que significa que se usa la referencia cultural de la interfaz de usuario actual.By default, its value is null, which means that the current UI culture is used.

  • Una propiedad static (C#) o Shared (Visual Basic) de solo lectura para cada recurso del archivo .resources.One static (C#) or Shared (Visual Basic) and read-only property for each resource in the .resources file. El nombre de la propiedad es el nombre del recurso.The name of the property is the name of the resource.-

Por ejemplo, el comando siguiente compila un archivo de recursos denominado StringResources.txt en StringResources.resources y genera una clase denominada StringResources en un archivo de código fuente de Visual Basic denominado StringResources.vb que se puede usar para tener acceso al Administrador de recursos.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   

Vea tambiénSee Also

HerramientasTools
Recursos de aplicaciones de escritorioResources in Desktop Apps
Crear archivos de recursosCreating Resource Files
Al.exe (Assembly Linker)Al.exe (Assembly Linker)
Símbolos del sistemaCommand Prompts