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

Le Générateur de fichiers de ressources (Resgen.exe) convertit les fichiers texte (.txt ou .restext) et les fichiers de format de ressource XML (.resx) en fichiers binaires Common Language Runtime (.resources) pouvant être incorporés dans un exécutable binaire runtime ou un assembly satellite.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. (Consultez Création de fichiers de ressources.)(See Creating Resource Files.)

Resgen.exe est un utilitaire de conversion des ressources à but général, qui effectue les tâches suivantes :Resgen.exe is a general-purpose resource conversion utility that performs the following tasks:

  • Il convertit les fichiers .txt ou .restext en fichiers .resources ou .resx.Converts .txt or .restext files to .resources or .resx files. (Le format des fichiers .restext est identique à celui des fichiers .txt.(The format of .restext files is identical to the format of .txt files. Toutefois, l'extension .restext vous aide à identifier plus facilement les fichiers texte qui contiennent des définitions de ressource.)However, the .restext extension helps you identify text files that contain resource definitions more easily.)

  • Il convertit les fichiers .resources en fichiers .txt ou .resx ;Converts .resources files to text or .resx files.

  • Il convertit les fichiers .resx en fichiers .txt ou .resources ;Converts .resx files to text or .resources files.

  • Il extrait les ressources de chaîne d'un assembly dans un fichier .resw adapté pour une utilisation dans une application Windows 8.x StoreWindows 8.x Store ;Extracts the string resources from an assembly into a .resw file that is suitable for use in a Windows 8.x StoreWindows 8.x Store app.

  • Il crée une classe fortement typée qui permet d'accéder aux ressources individuelles nommées et à l'instance ResourceManager.Creates a strongly typed class that provides access to individual named resources and to the ResourceManager instance.

Si Resgen.exe échoue pour une raison quelconque, la valeur de retour sera -1.If Resgen.exe fails for any reason, the return value is –1.

Pour obtenir de l'aide concernant Resgen, exe, vous pouvez utiliser la commande suivante, sans spécifier d'options, pour afficher les options et une syntaxe de commande relatives à 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  

Vous pouvez également utiliser l'option /? :You can also use the /? switch:

resgen /?  

Si vous utilisez Resgen.exe pour générer des fichiers .resources binaires, vous pouvez utiliser un compilateur de langage pour incorporer les fichiers binaires dans des assemblys exécutables, ou vous pouvez utiliser Assembly Linker (Al.exe) pour les compiler dans des assemblys satellites.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.

Cet outil est installé automatiquement avec Visual Studio.This tool is automatically installed with Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur pour Visual Studio (ou l’invite de commandes Visual Studio dans Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Pour plus d'informations, consultez Invites de commandes.For more information, see Command Prompts.

À l'invite de commandes, tapez le texte suivant :At the command prompt, type the following:

SyntaxeSyntax

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

ParamètresParameters

Paramètre ou optionParameter or switch DescriptionDescription
/define: symbol1[, symbol2,...]/define: symbol1[, symbol2,...] À compter de .NET Framework 4.5, prend en charge la compilation conditionnelle dans les fichiers de ressources au format texte (.txt ou .restext).Starting with the .NET Framework 4.5, supports conditional compilation in text-based (.txt or .restext) resource files. Si symbol correspond à un symbole inclus dans le fichier texte d’entrée au sein d’une construction #ifdef, la ressource de chaîne associée est incluse dans le fichier .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 le fichier texte d'entrée inclut une instruction #if ! avec un symbole qui n'est pas défini par l'option, /define, la ressource de chaîne associée est incluse dans le fichier de ressources.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 est ignorée si utilisée avec des fichiers au format autre que le format texte./define is ignored if it is used with non-text files. Les symboles respectent la casse.Symbols are case-sensitive.

Pour plus d’informations sur cette option, consultez Ressources de compilation conditionnelle plus loin dans cette rubrique.For more information about this option, see Conditionally Compiling Resources later in this topic.
useSourcePath Précise que le répertoire actif du fichier d’entrée sera utilisé pour résoudre les chemins d’accès relatifs du fichier.Specifies that the input file's current directory is to be used to resolve relative file paths.
/compile Permet de spécifier plusieurs fichiers .resx ou texte à convertir en différents fichiers .resources en une seule opération globale.Enables you to specify multiple .resx or text files to convert to multiple .resources files in a single bulk operation. Si vous omettez cette option, vous ne pouvez spécifier qu’un seul argument de fichier d’entrée.If you do not specify this option, you can specify only one input file argument. Les fichiers de sortie sont nommés nom_fichier.resources.Output files are named filename.resources.

Cette option ne peut pas être utilisée avec l'option /str:.This option cannot be used with the /str: option.

Pour plus d’informations sur cette option, consultez Compilation ou conversion de plusieurs fichiers plus loin dans cette rubrique.For more information about this option, see Compiling or Converting Multiple Files later in this topic.
/r: assembly/r: assembly Référence les métadonnées à partir de l'assembly spécifié.References metadata from the specified assembly. Cette option est utilisée lors de la conversion de fichiers .resx et permet à Resgen.exe de sérialiser ou de désérialiser des ressources d'objet.It is used when converting .resx files and allows Resgen.exe to serialize or deserialize object resources. Elle est semblable à /reference: ou aux options /r: des compilateurs C# et Visual Basic.It is similar to the /reference: or /r: options for the C# and Visual Basic compilers.
filename.extension Spécifie le nom du fichier d'entrée à convertir.Specifies the name of the input file to convert. Si vous utilisez la première syntaxe de ligne de commande, plus longue, présentée avant ce tableau, extension doit être l'une des opérations suivantes :If you're using the first, lengthier command-line syntax presented before this table, extension must be one of the following:

.txt ou .restext.txt or .restext
Un fichier texte à convertir en fichier .resources ou .resx.A text file to convert to a .resources or a .resx file. Les fichiers texte ne peuvent comporter que des ressources de chaîne.Text files can contain only string resources. Pour plus d’informations sur le format de fichier, consultez la section « Ressources dans les fichiers texte » de Création de fichiers de ressources.For information about the file format, see the "Resources in Text Files" section of Creating Resource Files.

.resx.resx
Un fichier de ressource XML à convertir en fichier .resources ou en fichier texte (.txt ou .restext).An XML-based resource file to convert to a .resources or a text (.txt or .restext) file.

.resources.resources
Un fichier de ressources binaire à convertir en fichier .resx ou en fichier texte (.txt ou .restext).A binary resource file to convert to a .resx or a text (.txt or .restext) file.

Si vous utilisez la deuxième syntaxe de ligne de commande, plus courte, présentée avant ce tableau, extension doit être la suivante :If you're using the second, shorter command-line syntax presented before this table, extension must be the following:

.exe ou .dll.exe or .dll
Un assembly .NET Framework (fichier exécutable ou bibliothèque) dont les ressources de chaîne doivent être extraites dans un fichier .resw à utiliser dans le développement des applications Windows 8.x StoreWindows 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 Windows 8.x StoreWindows 8.x Store apps.
outputFilename.extension Spécifie le nom et le type du fichier de ressources à créer.Specifies the name and type of the resource file to create.

Cet argument est facultatif lors de la conversion d'un fichier .txt, .restext ou .resx en un fichier .resources.This argument is optional when converting from a .txt, .restext, or .resx file to a .resources file. Si vous ne spécifiez pas de valeur pour outputFilename, Resgen.exe ajoute une extension .resources à l'entrée filename et écrit le fichier dans le répertoire qui contient 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.

L'argument outputFilename.extension est obligatoire lors d'une conversion à partir d'un fichier .resources.The outputFilename.extension argument is mandatory when converting from a .resources file. Spécifiez un nom de fichier avec l'extension .resx lors de la conversion d'un fichier .resources en fichier de ressources XML.Specify a file name with the .resx extension when converting a .resources file to an XML-based resource file. Spécifiez un nom de fichier avec l'extension .txt ou .restext lors de la conversion d'un fichier .resources en fichier texte.Specify a file name with the .txt or .restext extension when converting a .resources file to a text file. Vous devez uniquement convertir un fichier .resources en fichier .txt lorsque le fichier .resources ne comporte que des valeurs de chaînes.You should convert a .resources file to a .txt file only when the .resources file contains only string values.
outputDirectory Pour les applications Windows 8.x StoreWindows 8.x Store, spécifie le répertoire dans lequel un fichier .resw qui contient des ressources de chaîne dans filename.extension sera enregistré.For Windows 8.x StoreWindows 8.x Store apps, specifies the directory in which a .resw file that contains the string resources in filename.extension will be written. outputDirectory doit déjà exister.outputDirectory must already exist.
/str: language[,namespace[,classname[,filename]]]/str: language[,namespace[,classname[,filename]]] Crée un fichier de la classe de ressource fortement typée dans le langage de programmation spécifié dans l'option language.Creates a strongly typed resource class file in the programming language specified in the language option. language peut être un des littéraux suivants :language can consist of one of the following literals:

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

L'option namespace permet de spécifier l'espace de noms par défaut du projet, l'option classname permet de spécifier le nom de la classe générée et l'option filename permet de spécifier le nom du fichier de classe.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.

Un seul fichier d'entrée est autorisé lorsque l'option /str: est utilisée, afin qu'il ne puisse pas être utilisé avec l'option /compile.The /str: option allows only one input file, so it cannot be used with the /compile option.

Si namespace est spécifié, mais que classname ne l'est pas, le nom de la classe est dérivé du nom de fichier de sortie (par exemple, les traits de soulignement sont substitués pour les périodes).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). Les ressources fortement typées peuvent ne pas fonctionner correctement en conséquence.The strongly typed resources might not work correctly as a result. Pour éviter ce problème, spécifiez à la fois le nom de la classe et le nom du fichier de sortie.To avoid this, specify both class name and output file name.

Pour plus d’informations sur cette option, consultez Génération d’une classe de ressource fortement typée plus loin dans cette rubrique.For more information about this option, see Generating a Strongly Typed Resource Class later in this topic.
/publicClass Crée une classe de ressource fortement typée en tant que classe publique.Creates a strongly typed resource class as a public class. Par défaut, la classe de ressource en C# est internal et Friend en Visual Basic.By default, the resource class is internal in C# and Friend in Visual Basic.

Cette option est ignorée si l'option /str: n'est pas utilisée.This option is ignored if the /str: option is not used.

Resgen.exe et les types de fichier de ressourcesResgen.exe and Resource File Types

Pour que Resgen.exe convertisse correctement des ressources, les fichiers texte et .resx doivent respecter le bon format.In order for Resgen.exe to successfully convert resources, text and .resx files must follow the correct format.

Fichiers texte (.txt et .restext)Text (.txt and .restext) Files

Les fichiers texte (.txt ou .restext) ne peuvent contenir que des ressources de chaîne.Text (.txt or .restext) files may contain only string resources. Les ressources de chaîne s'avèrent utiles lorsque vous écrivez une application dont les chaînes doivent être traduites dans plusieurs langues.String resources are useful if you are writing an application that must have strings translated into several languages. Vous pouvez, par exemple, régionaliser les chaînes de menus à l'aide de la ressource de chaîne appropriée.For example, you can easily regionalize menu strings by using the appropriate string resource. Resgen.exe lit les fichiers texte comportant les paires nom/valeur, où le nom est une chaîne décrivant la ressource et la valeur est la chaîne de ressource elle-même.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.

Notes

Pour plus d’informations sur les fichiers aux formats .txt et .restext, consultez la section « Ressources dans les fichiers texte » de Création de fichiers de ressources.For information about the format of .txt and .restext files, see the "Resources in Text Files" section of Creating Resource Files.

Un fichier texte contenant des ressources doit être enregistré avec un encodage UTF-8 ou Unicode (UTF-16) à moins qu'il ne contienne uniquement des caractères de latin de base (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 supprime les caractères ANSI étendus lorsqu'il traite un fichier texte qui est enregistré avec l'encodage ANSI.Resgen.exe removes extended ANSI characters when it processes a text file that is saved using ANSI encoding.

Resgen.exe recherche d'éventuels doublons de noms de ressources dans le fichier texte.Resgen.exe checks the text file for duplicate resource names. Si le fichier texte contient des noms de ressources en double, Resgen.exe émettra un avertissement et ignorera la seconde valeur.If the text file contains duplicate resource names, Resgen.exe will emit a warning and ignore the second value.

Fichiers .resx.resx Files

Les fichiers de ressources au format .resx contiennent des entrées XML.The .resx resource file format consists of XML entries. Vous pouvez spécifier des ressources de chaîne dans ces entrées XML, comme dans les fichiers texte.You can specify string resources within these XML entries, as you would in text files. Le principal avantage des fichiers .resx par rapport aux fichiers texte est que vous pouvez aussi spécifier ou incorporer des objets.A primary advantage of .resx files over text files is that you can also specify or embed objects. Lorsque vous affichez un fichier .resx, il est possible de consulter la forme binaire d'un objet incorporé (une image, par exemple) si ces informations binaires sont intégrées au manifeste des ressources.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. Comme pour les fichiers texte, il est possible d'ouvrir un fichier .resx avec un éditeur de texte (tel que le Bloc-notes ou Microsoft Word) et écrire, analyser et manipuler son contenu.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. Notez que pour y parvenir, une bonne connaissance des étiquettes XML et de la structure des fichiers .resx s’avère nécessaire.Note that this requires a good knowledge of XML tags and the .resx file structure. Pour plus d’informations sur le format de fichier .resx, consultez la section « Ressources dans les fichiers .resx » de Création de fichiers de ressources.For more details on the .resx file format, see the "Resources in .resx Files" section of Creating Resource Files.

Pour créer un fichier .resources comportant des objets incorporés qui ne sont pas des chaînes, vous devez utiliser soit Resgen.exe pour convertir un fichier .resx contenant des objets ou ajouter les ressources de ces objet à votre fichier directement à partir du code, à l'aide des méthodes fournies par la classe 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 votre fichier .resx ou .resources contient des objets et si vous utilisez Resgen.exe pour le convertir en fichier texte, toutes les ressources de chaîne seront converties correctement, mais les types de données des objets qui ne sont pas des chaînes seront également écrits dans le fichier sous forme de chaînes.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. Vous perdrez alors les objets incorporés au cours de la conversion et Resgen.exe signalera qu'une erreur s'est produite lors de la récupération des ressources.You will lose the embedded objects in the conversion, and Resgen.exe will report that an error occurred in retrieving the resources.

Conversion entre types de fichier de ressourcesConverting Between Resources File Types

Lorsque vous effectuez une conversion entre différents types de fichier de ressources, il arrive que Resgen.exe ne puisse pas effectuer la conversion ou qu'il perde des informations sur des ressources spécifiques, selon les types de fichier source et cible.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. Le tableau suivant répertorie les types de conversions qui sont réussies lors de la conversion d'un type de fichier de ressources en un autre.The following table specifies the types of conversions that are successful when converting from one resource file type to another.

Convertir deConvert from en fichier texteTo text file en fichier .resxTo .resx file en fichier .reswTo .resw file en fichier .resourcesTo .resources file
Fichier texte (.txt ou .restext)Text (.txt or .restext) file -- Aucun problèmeNo issues Non pris en chargeNot supported Aucun problèmeNo issues
Fichier .resx.resx file La conversion échoue si le fichier contient des ressources qui ne sont pas des chaînes (y compris les liens de fichier)Conversion fails if file contains non-string resources (including file links) -- Non pris en chargeNot supported Aucun problèmeNo issues
Fichier .resources.resources file La conversion échoue si le fichier contient des ressources qui ne sont pas des chaînes (y compris les liens de fichier)Conversion fails if file contains non-string resources (including file links) Aucun problèmeNo issues Non pris en chargeNot supported --
assembly .exe ou .dll.exe or .dll assembly Non pris en chargeNot supported Non pris en chargeNot supported Seules les ressources de chaîne (y compris les noms de chemin d'accès) sont identifiées comme des ressources.Only string resources (including path names) are recognized as resources Non pris en chargeNot supported

Exécution de tâches spécifiques à Resgen.exePerforming Specific Resgen.exe Tasks

Vous pouvez utiliser Resgen.exe de différentes façons : pour compiler un fichier de ressource texte ou XML dans un fichier binaire, pour effectuer des conversions entre plusieurs formats de fichier de ressources et pour générer une classe qui encapsule la fonctionnalité du ResourceManager et fournit l'accès aux ressources.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. Cette section fournit des informations détaillées sur chaque tâche :This section provides detailed information about each task:

Compilation de ressources dans un fichier binaireCompiling Resources into a Binary File

L'utilisation la plus courante de Resgen.exe consiste à compiler un fichier de ressources texte (un fichier .txt ou .restext) ou un fichier de ressources XML (fichier .resx) dans un fichier .resources binaire.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. Le fichier de sortie peut être alors incorporé dans un assembly principal par un compilateur de langage ou dans un assembly satellite par le biais d’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 syntaxe pour compiler un fichier de ressources est :The syntax to compile a resource file is:

resgen inputFilename [outputFilename]   

où les paramètres sont :where the parameters are:

inputFilename
Le nom de fichier, y compris l’extension, du fichier de ressources à compiler.The file name, including the extension, of the resource file to compile. Resgen.exe compile uniquement des fichiers dont les extensions sont .txt, .restext, ou .resx.Resgen.exe only compiles files with extensions of .txt, .restext, or .resx.

outputFilename
Nom du fichier de sortie.The name of the output file. Si vous omettez outputFilename, Resgen.exe crée un fichier .resources avec le nom de fichier racine de inputFilename dans le même répertoire que 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 inclut un chemin d'accès, le répertoire doit exister.If outputFilename includes a directory path, the directory must exist.

Vous fournissez un espace de noms entièrement qualifié pour le fichier .resources en le spécifiant dans le nom du fichier et en le séparant du nom du fichier racine à l'aide d'un point.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. Par exemple, si outputFilename a la valeur MyCompany.Libraries.Strings.resources, l’espace de noms est MyCompany.Libraries.For example, if outputFilename is MyCompany.Libraries.Strings.resources, the namespace is MyCompany.Libraries.

La commande suivante lit les paires nom/valeur contenues dans Resources.txt et crée un fichier .ressources binaire nommé Resources.resources.The following command reads the name/value pairs in Resources.txt and writes a binary .resources file named Resources.resources. Lorsque le nom du fichier de sortie n'est pas spécifié explicitement, il reçoit par défaut le même nom que le fichier d'entrée.Because the output file name is not specified explicitly, it receives the same name as the input file by default.

resgen Resources.txt   

La commande suivante lit les paires nom/valeur contenues dans Resources.restxt et crée un fichier de ressources binaire nommé 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  

La commande suivante lit un fichier d'entrée XML nommé Resources.resx et crée un fichier .resources binaire nommé 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  

Conversion entre différents types de fichier de ressourcesConverting Between Resource File Types

Outre le fait de compiler des fichiers ressources XML ou texte en fichiers .resources binaires, Resgen.exe peut convertir tout type de fichier compatible en tout autre type de fichier 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. En d'autres termes, il peut exécuter les conversions suivantes :This means that it can perform the following conversions:

  • fichiers .txt et .restext en fichiers .resx..txt and .restext files to .resx files.

  • fichiers .resx en fichiers .txt et .restext..resx files to .txt and .restext files.

  • fichiers .resources en fichiers .txt et .restext..resources files to .txt and .restext files.

  • fichiers .resources en fichiers .resx..resources files to .resx files.

La syntaxe est la même que celle représentée dans la section précédente.The syntax is the same as that shown in the previous section.

Il est également possible d'utiliser Resgen.exe pour convertir des ressources incorporées dans un assembly .Net Framework en un fichier .resw pour les applications Windows 8.x StoreWindows 8.x Store.In addition, you can use Resgen.exe to convert embedded resources in a .NET Framework assembly to a .resw file tor Windows 8.x StoreWindows 8.x Store apps.

La commande suivante lit un fichier de ressources binaire Resources.resources et crée un fichier de sortie XML nommé 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  

La commande suivante lit un fichier de ressources texte nommé StringResources.txt et crée un fichier de ressources XML nommé LibraryResources.resx.The following command reads a text-based resources file named StringResources.txt and writes an XML-based resources file named LibraryResources.resx. En plus de contenir des ressources de chaîne, le fichier .resx peut également être utilisé pour stocker des ressources autres que des chaînes.In addition to containing string resources, the .resx file could also be used to store non-string resources.

resgen StringResources.txt LibraryResources.resx  

Les deux commandes suivantes lisent un fichier de ressources XML nommé Resources.resx et créent des fichiers texte nommés Resources.txt et 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. Notez que si le fichier .resx comporte des objets incorporés, ceux-ci ne seront pas correctement convertis en fichiers texte.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  

Compilation ou conversion de plusieurs fichiersCompiling or Converting Multiple Files

Vous pouvez utiliser l'option /compile pour convertir une liste de fichiers de ressources d'un format à un autre dans une opération unique.You can use the /compile switch to convert a list of resource files from one format to another in a single operation. La syntaxe est :The syntax is:

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

La commande suivante compile trois fichiers, StringResources.txt, TableResources.resw, et ImageResources.resw, en des fichiers .resources séparés nommés StringResources.resources, TableResources.resources, et 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  

Exportation de ressources vers un fichier .reswExporting Resources to a .resw File

Si vous développez une application Windows 8.x StoreWindows 8.x Store, il est possible d'utiliser des ressources d'une application de bureau existante.If you're developing a Windows 8.x StoreWindows 8.x Store app, you may want to use resources from an existing desktop app. Toutefois, les deux genres d'applications prennent en charge différents formats de fichier.However, the two kinds of applications support different file formats. Dans les applications de bureau, les ressources en texte (.txt ou .restext) ou les fichiers .resx sont compilés en fichiers binaires .resources.In desktop apps, resources in text (.txt or .restext) or .resx files are compiled into binary .resources files. Dans les applications Windows 8.x StoreWindows 8.x Store, les fichiers .resw sont compilés en fichiers binaires PRI (Package Resource Index).In Windows 8.x StoreWindows 8.x Store apps, .resw files are compiled into binary package resource index (PRI) files. Il est possible d'utiliser Resgen.exe pour combler ces différences en extrayant les ressources d'un fichier exécutable ou un assembly satellite, puis en les écrivant dans un ou plusieurs fichiers .resw qui peuvent être utilisés lors du développement d'une application Windows 8.x StoreWindows 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 Windows 8.x StoreWindows 8.x Store app.

Important

Visual Studio exécute automatiquement toutes les conversions nécessaires pour incorporer les ressources à une bibliothèque portable dans une application Windows 8.x StoreWindows 8.x Store.Visual Studio automatically handles all conversions necessary for incorporating the resources in a portable library into a Windows 8.x StoreWindows 8.x Store app. L'utilisation directe de Resgen.exe pour convertir les ressources contenues dans un assembly en un fichier au format .resw format est intéressante uniquement pour les développeurs qui souhaitent développer une application Windows 8.x StoreWindows 8.x Store en dehors 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 Windows 8.x StoreWindows 8.x Store app outside of Visual Studio.

La syntaxe pour générer des fichiers .resw depuis un assembly est :The syntax to generate .resw files from an assembly is:

resgen filename.extension  [outputDirectory]  

où les paramètres sont :where the parameters are:

filename.extension
Le nom d'un assembly .NET Framework. (un fichier exécutable ou .dll).The name of a .NET Framework assembly (an executable or .DLL). Si le fichier ne contient aucune ressource, Resgen.exe ne crée aucun fichier.If the file contains no resources, Resgen.exe does not create any files.

outputDirectory
Le répertoire existant dans lequel écrire les fichiers .resw.The existing directory to which to write the .resw files. Si outputDirectory est omis, les fichiers .resw sont écrits dans le répertoire actif.If outputDirectory is omitted, .resw files are written to the current directory. Resgen.exe crée un fichier .resw pour chaque fichier .resources dans l'assembly.Resgen.exe creates one .resw file for each .resources file in the assembly. Le nom de fichier racine du fichier .resw est identique au nom racine du fichier .resources.The root file name of the .resw file is the same as the root name of the .resources file.

La commande suivante crée un fichier .resw dans le répertoire Win8Resources pour chaque fichier .resources incorporé dans 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  

Ressources de compilation conditionnelleConditionally Compiling Resources

À compter de .NET Framework 4.5, Resgen.exe prend en charge la compilation conditionnelle des ressources de type chaîne dans des fichiers texte (.txt et .restext).Starting with the .NET Framework 4.5, Resgen.exe supports conditional compilation of string resources in text (.txt and .restext) files. Cela vous permet d'utiliser un fichier de ressources texte unique dans plusieurs configurations de build.This enables you to use a single text-based resource file in multiple build configurations.

Dans un fichier .txt ou .restext, utilisez la construction #ifdef#endifIn a .txt or .restext file, you use the #ifdef#endif pour inclure une ressource dans le fichier .resources binaire si un symbole est défini, et utilisez la construction #if !... #endif pour inclure une ressource si aucun symbole n’est défini.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. Au moment de la compilation, vous définissez alors des symboles à l'aide de l'option /define: suivie d'une liste de symboles délimités par des virgules.At compile time, you then define symbols by using the /define: option followed by a comma-delimited list of symbols. La comparaison est sensible à la casse ; la casse des symboles définie par /define doit correspondre à la casse des symboles des fichiers texte à compiler.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.

Par exemple, le fichier suivant nommé UIResources.rext inclut une ressource de type chaîne de caractères nommée AppTitle qui peut prendre une valeurs sur trois, selon si les symboles nommés PRODUCTION, CONSULT, ou RETAIL sont définis.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  

Le fichier peut ensuite être compilé dans un fichier .resources binaire avec la commande suivante :The file can then be compiled into a binary .resources file with the following command:

resgen /define:CONSULT UIResources.restext  

Il en résulte un fichier .resources qui contient deux ressources de type chaîne de caractères.This produces a .resources file that contains two string resources. La valeur de la ressource AppTitle est "My Consulting Company Project Manager".The value of the AppTitle resource is "My Consulting Company Project Manager".

Génération d'une classe de ressource fortement typéeGenerating a Strongly Typed Resource Class

Resgen.exe prend en charge des ressources fortement typées, qui encapsulent l'accès aux ressources en créant des classes qui contiennent un jeu de propriétés statiques en lecture seule.Resgen.exe supports strongly typed resources, which encapsulates access to resources by creating classes that contain a set of static read-only properties. Cela fournit une alternative à l'appel des méthodes de classe ResourceManager directement pour récupérer des ressources.This provides an alternative to calling the methods of the ResourceManager class directly to retrieve resources. Il est possible d'activer la prise en charge des ressources fortement typées en utilisant l'option /str dans Resgen.exe, qui encapsule les fonctionnalités de la classe StronglyTypedResourceBuilder.You can enable strongly typed resource support by using the /str option in Resgen.exe, which wraps the functionality of the StronglyTypedResourceBuilder class. Lorsque vous spécifiez l'option /str, la sortie de Resgen.exe est une classe qui possède des propriétés fortement typées qui correspondent aux ressources qui sont référencées dans le paramètre d'entrée.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. Cette classe fournit un accès en lecture seule fortement typé aux ressources disponibles dans le fichier traité.This class provides strongly typed read-only access to the resources that are available in the file processed.

La syntaxe pour créer une ressource fortement typée est :The syntax to create a strongly typed resource is:

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

Les paramètres et options sont :The parameters and switches are:

inputFilename
Le nom de fichier, y compris l’extension, du fichier de ressources nécessitant de générer une classe de ressource fortement typée.The file name, including the extension, of the resource file for which to generate a strongly typed resource class. Le fichier peut être un fichier texte, XML, ou .resources binaire pouvant avoir une extension .txt, .restext, .resw, ou .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
Nom du fichier de sortie.The name of the output file. Si outputFilename inclut un chemin d'accès, le répertoire doit exister.If outputFilename includes a directory path, the directory must exist. Si vous omettez outputFilename, Resgen.exe crée un fichier .resources avec le nom de fichier racine de inputFilename dans le même répertoire que 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 peut être un fichier texte, XML ou un fichier .resources binaire.outputFilename can be a text-based, XML-based, or binary .resources file. Si l'extension de fichier de outputFilename est différente de l'extension de fichier de inputFilename, Resgen.exe effectue une conversion de fichier.If the file extension of outputFilename is different from the file extension of inputFilename, Resgen.exe performs the file conversion.

Si inputFilename est un fichier .resources, Resgen.exe copie le fichier .resources si outputFilename est également un fichier .resources.If inputFilename is a .resources file, Resgen.exe copies the .resources file if outputFilename is also a .resources file. Si outputFilename est omis, Resgen.exe remplace inputFilename par un fichier .resources identique.If outputFilename is omitted, Resgen.exe overwrites inputFilename with an identical .resources file.

languagelanguage
Le langage à utiliser pour générer du code source pour la classe de ressource fortement typée.The language in which to generate source code for the strongly-typed resource class. Les valeurs possibles sont cs, C# et csharp pour le code C#, vb et visualbasic pour le code Visual Basic, vbs et vbscript pour le code VBScript, ainsi que c++, mc et cpp pour le code 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
L'espace de noms qui contient la classe de ressource fortement typée.The namespace that contains the strongly typed resource class. Le fichier .resources et la classe de ressource doivent avoir le même espace de noms.The .resources file and the resource class should have the same namespace. Pour plus d’informations sur la spécification de l’espace de noms dans outputFilename, consultez Compilation de ressources dans un fichier binaire.For information about specifying the namespace in the outputFilename, see Compiling Resources into a Binary File. Si namespace est omis, la classe de ressource n’est pas contenue dans un espace de noms.If namespace is omitted, the resource class is not contained in a namespace.

classnameclassname
Nom de la classe de ressource fortement typée.The name of the strongly typed resource class. Cela doit correspondre au nom racine du fichier .resources.This should correspond to the root name of the .resources file. Par exemple, si Resgen.exe génère un fichier .resources nommé MyCompany.Libraries.Strings.resources, le nom de la classe de ressource fortement typée est 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 classname est omis, la classe générée est dérivée du nom racine de outputFilename.If classname is omitted, the generated class is derived from the root name of outputFilename. Si outputFilename est omis, la classe générée est dérivée du nom racine de inputFilename.If outputFilename is omitted, the generated class is derived from the root name of inputFilename.

classname ne peut pas contenir de caractères non valides, notamment des espaces incorporés.classname cannot contain invalid characters such as embedded spaces. Si classname contient des espaces incorporés, ou si classname est généré par défaut à partir de inputFilename et que inputFilename contient des espaces incorporés, Resgen.exe remplace tous les caractères non valides par un trait de soulignement (_).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
Nom du fichier de classe.The name of the class file.

/publicclass
Rend public la classe de ressources fortement typée plutôt que internal (en C#) ou Friend (en Visual Basic).Makes the strongly typed resource class public rather than internal (in C#) or Friend (in Visual Basic). Cela permet d'accéder aux ressources depuis l'extérieur de l'assembly dans lequel elles sont incorporées.This allows the resources to be accessed from outside the assembly in which they are embedded.

Important

Lorsque vous créez une classe de ressource fortement typé, le nom de votre fichier .resources doit correspondre à l'espace de noms et au nom de la classe du code généré.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. Toutefois, Resgen.exe vous permet de spécifier des options qui produisent un fichier .resources qui a un nom incompatible.However, Resgen.exe allows you to specify options that produce a .resources file that has an incompatible name. Pour contourner ce comportement, renommez le fichier de sortie après qu'il ait été généré.To work around this behavior, rename the output file after it has been generated.

La classe de ressource fortement typée possède les entités suivantes :The strongly typed resource class has the following members:

  • Un constructeur qui ne prend pas de paramètres et qui peut être utilisé pour instancier la classe de ressource fortement typée.A parameterless constructor, which can be used to instantiate the strongly typed resource class..

  • Une propriété static (C#) ou Shared (Visual Basic) et accessible en lecture seule du ResourceManager, qui retourne l'instance du ResourceManager, qui gère la ressource fortement typée.A static (C#) or Shared (Visual Basic) and read-only ResourceManager property, which returns the ResourceManager instance that manages the strongly typed resource.

  • Une propriété Culture statique, qui vous permet de définir la culture utilisée pour la récupération de ressource.A static Culture property, which allows you to set the culture used for resource retrieval. Par défaut, sa valeur est null, ce qui signifie que la culture d'interface utilisateur actuelle est utilisée.By default, its value is null, which means that the current UI culture is used.

  • Une propriété static (C#) ou Shared (Visual Basic) et en lecture seule pour chaque ressource du fichier .resources.One static (C#) or Shared (Visual Basic) and read-only property for each resource in the .resources file. La propriété porte le nom de la ressource. -The name of the property is the name of the resource.-

Par exemple, la commande suivante compile un fichier de ressources nommé StringResources.txt dans StringResources.resources et génère une classe nommée StringResources dans un fichier de code source Visual Basic nommé StringResources.vb qui peut être utilisé pour accéder au Gestionnaire des ressources.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   

Voir aussiSee also