Resgen.exe (generatore di file di risorse)Resgen.exe (Resource File Generator)

Il generatore di file di risorse (Resgen.exe) converte i file di testo (.txt o .restext) e i file di risorse basati su XML (.resx) in file binari Common Language Runtime (.resources) incorporabili in un eseguibile binario o in un assembly satellite di runtime.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. Vedere Creazione di file di risorse.(See Creating Resource Files.)

Resgen.exe è un'utilità generica di conversione delle risorse che esegue le seguenti attività:Resgen.exe is a general-purpose resource conversion utility that performs the following tasks:

  • Converte i file .txt o .restext in file .resources o .resx.Converts .txt or .restext files to .resources or .resx files. Il formato dei file .restext è identico al formato dei file .txt,(The format of .restext files is identical to the format of .txt files. Tuttavia, l'estensione .restext consente di identificare più facilmente i file di testo che contengono definizioni di risorse.However, the .restext extension helps you identify text files that contain resource definitions more easily.)

  • Converte i file .resources in file di testo o .resx.Converts .resources files to text or .resx files.

  • Converte i file .resx in file di testo o .resources.Converts .resx files to text or .resources files.

  • Estrae le risorse di tipo stringa da un assembly in un file .resw adatto a essere utilizzato in un'app 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.

  • Crea una classe fortemente tipizzata che fornisce accesso alle singole risorse denominate e all'istanza ResourceManager.Creates a strongly typed class that provides access to individual named resources and to the ResourceManager instance.

Se l'esecuzione di Resgen.exe non riesce per qualsiasi motivo, il valore restituito è -1.If Resgen.exe fails for any reason, the return value is –1.

Per ottenere assistenza su Resgen.exe, è possibile utilizzare il seguente comando, senza specificare opzioni, per visualizzare la sintassi e le opzioni di comando dello strumento: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  

È inoltre possibile utilizzare l'opzione /?:You can also use the /? switch:

resgen /?  

Se si usa Resgen.exe per generare file binari RESOURCES, è possibile usare un compilatore di linguaggio per incorporare i file binari in assembly eseguibili oppure Assembly Linker (Al.exe) per compilarli in assembly satellite.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.

Viene installato automaticamente con Visual Studio.This tool is automatically installed with Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per sviluppatori o il prompt dei comandi di Visual Studio in Windows 7.To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7). Per altre informazioni, vedere Prompt dei comandi.For more information, see Command Prompts.

Al prompt dei comandi digitare quanto segue:At the command prompt, type the following:

SintassiSyntax

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

ParametriParameters

Parametro o opzioneParameter or switch DescrizioneDescription
/define: simbolo1[, simbolo2,...]/define: symbol1[, symbol2,...] A partire da .NET Framework 4.5.NET Framework 4.5 supporta la compilazione condizionale in file di risorse basati su testo (.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. Se simbolo corrisponde ad un simbolo incluso nel file di testo di input all'interno di un costrutto #ifdef, la risorsa di tipo stringa associata viene inclusa nel file 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. Se il file di testo di input include un'istruzione #if ! con un simbolo non definito dall'opzione /define, la risorsa di tipo stringa associata viene inclusa nel file di risorse.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 viene ignorato se è utilizzato con file non di testo./define is ignored if it is used with non-text files. Nei simboli viene fatta distinzione tra maiuscole e minuscole.Symbols are case-sensitive.

Per altre informazioni su questa opzione, vedere Compilazione condizionale di risorse più avanti in questo argomento.For more information about this option, see Conditionally Compiling Resources later in this topic.
useSourcePath Specifica che è necessario usare la directory corrente del file di input per risolvere i percorsi di file relativi.Specifies that the input file's current directory is to be used to resolve relative file paths.
/compile Consente di specificare più file di testo o .resx da convertire in più file .resources con una singola operazione di massa.Enables you to specify multiple .resx or text files to convert to multiple .resources files in a single bulk operation. Se non si specifica questa opzione, sarà possibile specificare un solo argomento di file di input.If you do not specify this option, you can specify only one input file argument. I file di output sono denominati nomefile.resources.Output files are named filename.resources.

Non è possibile usare questa opzione con l'opzione /str:.This option cannot be used with the /str: option.

Per altre informazioni su questa opzione, vedere Compilazione o conversione di più file più avanti in questo argomento.For more information about this option, see Compiling or Converting Multiple Files later in this topic.
/r: assembly/r: assembly Fa riferimento ai metadati dell'assembly specificato.References metadata from the specified assembly. Utilizzata quando si convertono i file .resx, consente a Resgen.exe di serializzare o deserializzare risorse di tipo oggetto.It is used when converting .resx files and allows Resgen.exe to serialize or deserialize object resources. È simile alle opzioni /reference: o /r: per i compilatori C# e Visual Basic.It is similar to the /reference: or /r: options for the C# and Visual Basic compilers.
filename.extension Specifica il nome del file di input da convertire.Specifies the name of the input file to convert. Se si utilizza la prima, più lunga sintassi della riga di comando presentata prima di questa tabella, extension deve essere una delle seguenti: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
Un file di testo da convertire in un file .resources o .resx.A text file to convert to a .resources or a .resx file. I file di testo possono contenere solo risorse di tipo stringa.Text files can contain only string resources. Per informazioni sul formato del file, vedere la sezione "Risorse in file di testo" in Creazione di file di risorse.For information about the file format, see the "Resources in Text Files" section of Creating Resource Files.

.resx.resx
Un file di risorse basato su XML da convertire in un file .resources o in un file di testo (.txt o .restext).An XML-based resource file to convert to a .resources or a text (.txt or .restext) file.

.resources.resources
Un file di risorse binario da convertire in un file .resx o di testo (.txt o .restext).A binary resource file to convert to a .resx or a text (.txt or .restext) file.

Se si utilizza la seconda, più breve sintassi della riga di comando presentata prima di questa tabella, extension deve essere la seguente: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
Un assembly .NET Framework (eseguibile o libreria) le cui risorse di tipo stringa devono essere estratte in un file .resw per essere utilizzate nello sviluppo di app 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 Specifica il nome e il tipo del file di risorse da creare.Specifies the name and type of the resource file to create.

Questo argomento è facoltativo quando si esegue la conversione da un file .txt, .restext o .resx in un file .resources.This argument is optional when converting from a .txt, .restext, or .resx file to a .resources file. Se non si specifica outputFilename, viene automaticamente aggiunta l'estensione .resources al filename di input e il file viene scritto nella directory contenente 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'argomento outputFilename.extension è obbligatorio quando si esegue la conversione da un file .resources.The outputFilename.extension argument is mandatory when converting from a .resources file. Specificare un nome file con l'estensione .resx quando si converte un file .resources in un file di risorse basato su XML.Specify a file name with the .resx extension when converting a .resources file to an XML-based resource file. Specificare un nome file con l'estensione .txt o .restext quando si converte un file .resources in un file di testo.Specify a file name with the .txt or .restext extension when converting a .resources file to a text file. È consigliabile convertire un file .resources in un file .txt solo quando il file .resources contiene unicamente valori di tipo stringa.You should convert a .resources file to a .txt file only when the .resources file contains only string values.
outputDirectory Per le app Windows 8.x StoreWindows 8.x Store, specifica la directory in cui verrà scritto un file .resw che contiene le risorse di tipo stringa in filename.extension.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 deve già esistere.outputDirectory must already exist.
/str: language[,namespace[,classname[,filename]]]/str: language[,namespace[,classname[,filename]]] Crea un file di classe di risorse fortemente tipizzato nel linguaggio di programmazione specificato nell'opzione language.Creates a strongly typed resource class file in the programming language specified in the language option. language può consistere in uno dei seguenti valori letterali:language can consist of one of the following literals:

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

L'opzione namespace specifica lo spazio dei nomi predefinito del progetto, l'opzione classname specifica il nome della classe generata e l'opzione filename specifica il nome del file di 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.

L'opzione /str: consente un solo file di input, pertanto non può essere utilizzata con l'opzione /compile.The /str: option allows only one input file, so it cannot be used with the /compile option.

Se viene specificato namespace, ma non classname, il nome della classe deriva dal nome del file di output; ad esempio, le sottolineature vengono sostituite ai punti.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). Di conseguenza è possibile che le risorse fortemente tipizzate non funzionino correttamente.The strongly typed resources might not work correctly as a result. Per ovviare a questo problema, specificare sia il nome della classe che il nome del file di output.To avoid this, specify both class name and output file name.

Per altre informazioni su questa opzione, vedere Generazione di una classe di risorse fortemente tipizzata più avanti in questo argomento.For more information about this option, see Generating a Strongly Typed Resource Class later in this topic.
/publicClass Crea una classe di risorse fortemente tipizzata come classe pubblica.Creates a strongly typed resource class as a public class. Per impostazione predefinita, la classe di risorse è internal in C# e Friend in Visual Basic.By default, the resource class is internal in C# and Friend in Visual Basic.

Questa opzione viene ignorata se non si utilizza l'opzione /str:.This option is ignored if the /str: option is not used.

Resgen.exe e i tipi di file di risorseResgen.exe and Resource File Types

Per una corretta conversione delle risorse tramite Resgen.exe, è necessario che i file di testo e .resx abbiano il formato corretto.In order for Resgen.exe to successfully convert resources, text and .resx files must follow the correct format.

File di testo (.txt e .restext)Text (.txt and .restext) Files

I file di testo (.txt o .restext) possono contenere solo risorse di tipo stringa.Text (.txt or .restext) files may contain only string resources. Le risorse di tipo stringa sono utili se si scrive un'applicazione contenente stringhe che dovranno essere tradotte in varie lingue.String resources are useful if you are writing an application that must have strings translated into several languages. È ad esempio possibile localizzare facilmente le stringhe dei menu utilizzando la risorsa di tipo stringa appropriata.For example, you can easily regionalize menu strings by using the appropriate string resource. Resgen.exe legge i file di testo che contengono coppie nome/valore, dove il nome è una stringa che descrive la risorsa e il valore è la stringa risorsa stessa.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

Per informazioni sul formato dei file TXT e RESTEXT, vedere la sezione "Risorse in file di testo" in Creazione di file di risorse.For information about the format of .txt and .restext files, see the "Resources in Text Files" section of Creating Resource Files.

Un file di testo contenente risorse deve essere salvato con codifica UTF-8 o Unicode (UTF-16) a meno che contenga solo caratteri nell'intervallo Latino di base (fino a 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 rimuove i caratteri ANSI estesi quando elabora un file di testo che viene salvato utilizzando la codifica ANSI.Resgen.exe removes extended ANSI characters when it processes a text file that is saved using ANSI encoding.

Resgen.exe controlla che il file di testo non contenga nomi di risorsa duplicati.Resgen.exe checks the text file for duplicate resource names. Se sono presenti nomi di risorsa duplicati, verrà generato un avviso e i valori duplicati verranno ignorati.If the text file contains duplicate resource names, Resgen.exe will emit a warning and ignore the second value.

File .resx.resx Files

Il formato dei file di risorse .resx è composto da voci XML.The .resx resource file format consists of XML entries. Analogamente ai file di testo, è possibile specificare risorse di tipo stringa in tali voci.You can specify string resources within these XML entries, as you would in text files. Uno dei principali vantaggi dei file .resx rispetto ai file di testo consiste nel fatto che i file .resx consentono anche di specificare o incorporare oggetti.A primary advantage of .resx files over text files is that you can also specify or embed objects. Quando si visualizza un file .resx, è effettivamente possibile vedere il formato binario di un oggetto incorporato (ad esempio un'immagine) quando queste informazioni binarie fanno parte del manifesto della risorsa.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. Come per i file di testo, è possibile aprire un file .resx con un editor di testo (come il Blocco note o Microsoft Word) e scrivere, analizzare e modificare il contenuto.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. Tenere presente che questa operazione richiede una buona conoscenza dei tag XML e della struttura dei file .resx.Note that this requires a good knowledge of XML tags and the .resx file structure. Per altre informazioni sul formato dei file RESX, vedere la sezione "Risorse in file RESX" in Creazione di file di risorse.For more details on the .resx file format, see the "Resources in .resx Files" section of Creating Resource Files.

Al fine di creare un file .resources contenente oggetti incorporati non di tipo stringa, è necessario convertire, mediante Resgen.exe, un file .resx contenente oggetti oppure aggiungere le risorse di tipo oggetto al file direttamente dal codice, chiamando i metodi forniti dalla 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.

Se il file di risorse .resx o .resources contiene oggetti e si utilizza Resgen.exe per convertirli in un file di testo, tutte le risorse di tipo stringa verranno convertite correttamente, ma anche gli oggetti non di tipo stringa verranno scritti nel file sotto forma di stringhe.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. Gli oggetti incorporati andranno quindi persi nella conversione e verrà segnalato dallo strumento che si è verificato un errore nel recupero delle risorse.You will lose the embedded objects in the conversion, and Resgen.exe will report that an error occurred in retrieving the resources.

Conversione tra tipi di file di risorseConverting Between Resources File Types

Quando si esegue la conversione tra tipi di file di risorse diverse, potrebbe non essere possibile eseguire la conversione con Resgen.exe o potrebbero andare perse informazioni su risorse specifiche, a seconda dei tipi di file di origine e di destinazione.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. Nella tabella seguente vengono specificati i tipi di conversione da un tipo di file di risorse ad un altro effettuabili senza problemi.The following table specifies the types of conversions that are successful when converting from one resource file type to another.

Conversione daConvert from A file di testoTo text file A file .resxTo .resx file A file .reswTo .resw file A file .resourcesTo .resources file
File di testo (.txt o .restext)Text (.txt or .restext) file -- Senza problemiNo issues Non supportatoNot supported Senza problemiNo issues
File .resx.resx file La conversione non riesce se il file contiene risorse non di tipo stringa (inclusi i collegamenti a file)Conversion fails if file contains non-string resources (including file links) -- Non supportatoNot supported Senza problemiNo issues
File .resources.resources file La conversione non riesce se il file contiene risorse non di tipo stringa (inclusi i collegamenti a file)Conversion fails if file contains non-string resources (including file links) Senza problemiNo issues Non supportatoNot supported --
assembly .exe o .dll.exe or .dll assembly Non supportatoNot supported Non supportatoNot supported Solo le risorse di tipo stringa (inclusi i nomi di percorso) vengono riconosciute come risorseOnly string resources (including path names) are recognized as resources Non supportatoNot supported

Esecuzione di specifiche attività di Resgen.exePerforming Specific Resgen.exe Tasks

È possibile utilizzare Resgen.exe per diversi scopi: per la compilazione di un file di risorse basato su testo o su XML in un file binario, per la conversione tra formati di file di risorse e per la generazione di una classe che esegue il wrapping della funzionalità ResourceManager e fornisce accesso alle risorse.You can use Resgen.exe in diverse ways: to compile a text-based or XML-based resource file into a binary file, to convert between resource file formats, and to generate a class that wraps ResourceManager functionality and provides access to resources. In questa sezione vengono fornite informazioni dettagliate su ogni attività:This section provides detailed information about each task:

Compilazione di risorse in un file binarioCompiling Resources into a Binary File

L'utilizzo più comune di Resgen.exe consiste nel compilare un file di risorse basato su testo (file .restext o .txt) o un file di risorse basato su XML (file .resx) in un file .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. Il file di output può quindi essere incorporato in un assembly principale tramite un compilatore di linguaggio o in un assembly satellite tramite 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 sintassi per compilare un file di risorse è:The syntax to compile a resource file is:

resgen inputFilename [outputFilename]   

dove i parametri sono:where the parameters are:

inputFilename
Nome file, inclusa l'estensione, del file di risorse da compilare.The file name, including the extension, of the resource file to compile. Resgen.exe compila solo i file con estensione .txt, .restext o .resx.Resgen.exe only compiles files with extensions of .txt, .restext, or .resx.

outputFilename
Nome del file di output.The name of the output file. Se si omette outputFilename, Resgen.exe crea un file .resources con il nome file radice di inputFilename nella stessa directory di inputFilename.If you omit outputFilename, Resgen.exe creates a .resources file with the root file name of inputFilename in the same directory as inputFilename. Se outputFilename include un percorso di directory, la directory deve esistere.If outputFilename includes a directory path, the directory must exist.

Fornire uno spazio dei nomi completo per il file .resources specificandolo nel nome file e separandolo dal nome file radice con 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. Ad esempio, se outputFilename è MyCompany.Libraries.Strings.resources, lo spazio dei nomi è MyCompany.Libraries.For example, if outputFilename is MyCompany.Libraries.Strings.resources, the namespace is MyCompany.Libraries.

Il seguente comando legge le coppie nome/valore in Resources.txt e scrive un file .resources binario denominato Resources.resources.The following command reads the name/value pairs in Resources.txt and writes a binary .resources file named Resources.resources. Poiché il nome del file di output non viene specificato in modo esplicito, per impostazione predefinita assume lo stesso nome del file di input.Because the output file name is not specified explicitly, it receives the same name as the input file by default.

resgen Resources.txt   

Il seguente comando legge le coppie nome/valore in Resources.restext e scrive un file di risorse binario denominato 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  

Il seguente comando legge un file di input basato su XML denominato Resources.resx e scrive un file .resources binario denominato 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  

Conversione tra tipi di file di risorseConverting Between Resource File Types

Oltre a compilare file di risorse basati su testo o su XML in file .resources binari, Resgen.exe può convertire qualsiasi tipo di file supportato in qualsiasi altro tipo di file supportato.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. Ciò significa che è possibile effettuare le seguenti conversioni:This means that it can perform the following conversions:

  • file .txt e .restext in file .resx.txt and .restext files to .resx files.

  • file .resx in file .txt e .restext.resx files to .txt and .restext files.

  • file .resources in file .txt e .restext.resources files to .txt and .restext files.

  • file .resources in file .resx.resources files to .resx files.

La sintassi è identica a quella mostrata nella sezione precedente.The syntax is the same as that shown in the previous section.

Inoltre, è possibile utilizzare Resgen.exe per convertire le risorse incorporate in un assembly .NET Framework in un file .resw per app 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.

Il seguente comando legge un file di risorse binario Resources.resources e scrive un file di output basato su XML denominato 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  

Il seguente comando legge un file di risorse basato su testo denominato StringResources.txt e scrive un file di risorse basato su XML denominato LibraryResources.resx.The following command reads a text-based resources file named StringResources.txt and writes an XML-based resources file named LibraryResources.resx. Oltre a contenere le risorse di tipo stringa, il file .resx potrebbe anche essere utilizzato per archiviare risorse non di tipo stringa.In addition to containing string resources, the .resx file could also be used to store non-string resources.

resgen StringResources.txt LibraryResources.resx  

I seguenti due comandi leggono un file di risorse basato su XML denominato Resources.resx e scrivono file di testo denominati Resources.txt e 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. Tenere presente che, se il file .resx contiene oggetti incorporati, questi ultimi non verranno convertiti correttamente nei file di testo.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  

Compilazione o conversione di più fileCompiling or Converting Multiple Files

È possibile utilizzare l'opzione /compile per convertire un elenco di file di risorse da un formato ad un altro con un'unica operazione.You can use the /compile switch to convert a list of resource files from one format to another in a single operation. La sintassi è:The syntax is:

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

Il seguente comando compila tre file, StringResources.txt, TableResources.resw e ImageResources.resw, in file .resources separati denominati 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  

Esportazione di risorse in un file .reswExporting Resources to a .resw File

Nello sviluppo di un'app Windows 8.x StoreWindows 8.x Store si può decidere di utilizzare le risorse di un'app desktop esistente.If you're developing a Windows 8.x StoreWindows 8.x Store app, you may want to use resources from an existing desktop app. Tuttavia, i due tipi di applicazioni supportano formati di file diversi.However, the two kinds of applications support different file formats. Nelle app desktop, le risorse di testo (.txt o .restext) o i file .resx vengono compilati in file .resources binari.In desktop apps, resources in text (.txt or .restext) or .resx files are compiled into binary .resources files. Nelle app Windows 8.x StoreWindows 8.x Store, i file .resw vengono compilati in file di indice risorse (PRI) binari.In Windows 8.x StoreWindows 8.x Store apps, .resw files are compiled into binary package resource index (PRI) files. È possibile utilizzare Resgen.exe per ovviare a questo problema estraendo le risorse da un file eseguibile o da un assembly satellite e scrivendole in uno o più file .resw che possono essere utilizzati per lo sviluppo di un'app 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.

Importante

In Visual Studio tutte le conversioni necessarie per incorporare le risorse di una libreria portabile in un'app Windows 8.x StoreWindows 8.x Store vengono gestite automaticamente.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'utilizzo diretto di Resgen.exe per convertire le risorse di un assembly in un file .resw è rilevante solo per gli sviluppatori che desiderano creare un'app Windows 8.x StoreWindows 8.x Store al di fuori di 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 sintassi per generare file .resw da un assembly è:The syntax to generate .resw files from an assembly is:

resgen filename.extension  [outputDirectory]  

dove i parametri sono:where the parameters are:

filename.extension
Nome di un assembly .NET Framework (file eseguibile o .DLL).The name of a .NET Framework assembly (an executable or .DLL). Se il file non contiene risorse, non viene creato alcun file.If the file contains no resources, Resgen.exe does not create any files.

outputDirectory
Directory esistente in cui scrivere i file .resw.The existing directory to which to write the .resw files. Se outputDirectory viene omesso, i file .resw vengono scritti nella directory corrente.If outputDirectory is omitted, .resw files are written to the current directory. Resgen.exe crea un file .resw per ogni file .resources nell'assembly.Resgen.exe creates one .resw file for each .resources file in the assembly. Il nome file radice del file .resw è uguale al nome radice del file .resources.The root file name of the .resw file is the same as the root name of the .resources file.

Il seguente comando crea un file .resw nella directory Win8Resources per ogni file .resources incorporato in 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  

Compilazione condizionale di risorseConditionally Compiling Resources

A partire da .NET Framework 4.5.NET Framework 4.5, Resgen.exe supporta la compilazione condizionale delle risorse di tipo stringa in file di testo (.txt e .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. Questo consente di utilizzare un unico file di risorse basato su testo in più configurazioni della build.This enables you to use a single text-based resource file in multiple build configurations.

In un file TXT o RESTEXT usare i costrutti #ifdef#endifIn a .txt or .restext file, you use the #ifdef#endif per includere una risorsa nel file RESOURCES binario se è definito un simbolo e usare il costrutto #if !... #endif per includere una risorsa se non è definito un simbolo.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. In fase di compilazione si definiscono quindi i simboli tramite l'opzione /define: seguita da un elenco di simboli delimitato da virgole.At compile time, you then define symbols by using the /define: option followed by a comma-delimited list of symbols. Nel confronto si fa distinzione tra maiuscole e minuscole; l'uso delle maiuscole/minuscole nei simboli definiti da /define deve corrispondere a quello nei simboli nei file di testo da compilare.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.

Ad esempio, il seguente file denominato UIResources.rext include una risorsa di tipo stringa denominata AppTitle che può assumere uno di tre valori, a seconda che siano definiti simboli denominati 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  

Il file può quindi essere compilato in un file .resources binario con il comando seguente:The file can then be compiled into a binary .resources file with the following command:

resgen /define:CONSULT UIResources.restext  

Viene generato un file .resources che contiene due risorse di tipo stringa.This produces a .resources file that contains two string resources. Il valore della risorsa AppTitle è "My Consulting Company Project Manager".The value of the AppTitle resource is "My Consulting Company Project Manager".

Generazione di una classe di risorse fortemente tipizzataGenerating a Strongly Typed Resource Class

Resgen.ex supporta le risorse fortemente tipizzate, che incapsulano l'accesso alle risorse creando classi che contengono un set di proprietà statiche di sola lettura.Resgen.exe supports strongly typed resources, which encapsulates access to resources by creating classes that contain a set of static read-only properties. Ciò costituisce un'alternativa alla chiamata diretta dei metodi della classe ResourceManager per recuperare le risorse.This provides an alternative to calling the methods of the ResourceManager class directly to retrieve resources. È possibile abilitare il supporto per le risorse fortemente tipizzate utilizzando l'opzione /str in Resgen.exe, che esegue il wrapping della funzionalità della 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. Quando si specifica l'opzione /str, l'output è una classe che contiene le proprietà fortemente tipizzate corrispondenti alle risorse a cui si fa riferimento nel parametro di input.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. Questa classe fornisce accesso fortemente tipizzato e in sola lettura alle risorse disponibili nel file elaborato.This class provides strongly typed read-only access to the resources that are available in the file processed.

La sintassi per creare una risorsa fortemente tipizzata è:The syntax to create a strongly typed resource is:

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

I parametri e le opzioni sono:The parameters and switches are:

inputFilename
Nome file, inclusa l'estensione, del file di risorse per il quale generare una classe di risorse fortemente tipizzata.The file name, including the extension, of the resource file for which to generate a strongly typed resource class. Il file può essere basato su testo o su XML o può essere un file .resources binario; può avere l'estensione .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
Nome del file di output.The name of the output file. Se outputFilename include un percorso di directory, la directory deve esistere.If outputFilename includes a directory path, the directory must exist. Se si omette outputFilename, Resgen.exe crea un file .resources con il nome file radice di inputFilename nella stessa directory di 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 può essere un file basato su testo o su XML o un file .resources binario.outputFilename can be a text-based, XML-based, or binary .resources file. Se l'estensione del file outputFilename è diversa dall'estensione del file inputFilename, Resgen.exe esegue la conversione del file.If the file extension of outputFilename is different from the file extension of inputFilename, Resgen.exe performs the file conversion.

Se inputFilename è un file .resources, Resgen.exe copia il file .resources se anche outputFilename è un file .resources.If inputFilename is a .resources file, Resgen.exe copies the .resources file if outputFilename is also a .resources file. Se outputFilename viene omesso, Resgen.exe sovrascrive inputFilename con un file .resources identico.If outputFilename is omitted, Resgen.exe overwrites inputFilename with an identical .resources file.

linguaggiolanguage
Linguaggio per la generazione del codice sorgente per la classe di risorse fortemente tipizzata.The language in which to generate source code for the strongly-typed resource class. I valori possibili sono cs, C# e csharp per il codice C#, vb e visualbasic per il codice Visual Basic, vbs e vbscript per il codice VBScript, c++, mc e cpp per il codice 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
Spazio dei nomi che contiene la classe di risorse fortemente tipizzata.The namespace that contains the strongly typed resource class. Il file .resources e la classe di risorse devono avere lo stesso spazio dei nomi.The .resources file and the resource class should have the same namespace. Per informazioni su come specificare lo spazio dei nomi in outputFilename, vedere Compilazione di risorse in un file binario.For information about specifying the namespace in the outputFilename, see Compiling Resources into a Binary File. Se spazionomi viene omesso, la classe di risorse non viene inclusa in uno spazio dei nomi.If namespace is omitted, the resource class is not contained in a namespace.

nomeclasseclassname
Nome della classe di risorse fortemente tipizzata.The name of the strongly typed resource class. Deve corrispondere al nome radice del file .resources.This should correspond to the root name of the .resources file. Se ad esempio Resgen.exe genera un file .resources denominato MyCompany.Libraries.Strings.resources, il nome della classe di risorse fortemente tipizzata è 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. Se nomeclasse viene omesso, la classe generata viene derivata dal nome radice di outputFilename.If classname is omitted, the generated class is derived from the root name of outputFilename. Se outputFilename viene omesso, la classe generata viene derivata dal nome radice di inputFilename.If outputFilename is omitted, the generated class is derived from the root name of inputFilename.

nomeclasse non può contenere caratteri non validi, ad esempio spazi incorporati.classname cannot contain invalid characters such as embedded spaces. Se nomeclasse contiene spazi incorporati o se viene generato per impostazione predefinita a partire da nomeFileInput e nomeFileInput contiene spazi incorporati, Resgen.exe sostituisce tutti i caratteri non validi con un carattere di sottolineatura ().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
Nome del file della classe.The name of the class file.

/publicclass
Rende pubblica la classe di risorse fortemente tipizzata anziché internal (in C#) o Friend (in Visual Basic).Makes the strongly typed resource class public rather than internal (in C#) or Friend (in Visual Basic). In tal modo è possibile accedere alle risorse dall'esterno dell'assembly in cui sono incorporate.This allows the resources to be accessed from outside the assembly in which they are embedded.

Importante

Quando si crea una classe di risorse fortemente tipizzata, il nome del file .resources deve corrispondere a quello dello spazio dei nomi e della classe del codice generato.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. Tuttavia, Resgen.exe consente di specificare opzioni che generano un file .resources con un nome non compatibile.However, Resgen.exe allows you to specify options that produce a .resources file that has an incompatible name. Per ovviare a questo problema, rinominare il file di output dopo che è stato generato.To work around this behavior, rename the output file after it has been generated.

La classe di risorse fortemente tipizzata include i seguenti membri:The strongly typed resource class has the following members:

  • Un costruttore senza parametri, che può essere utilizzato per creare un'istanza della classe di risorse fortemente tipizzata.A parameterless constructor, which can be used to instantiate the strongly typed resource class..

  • Una proprietà static Shared (C#) o ResourceManager (Visual Basic) e di sola lettura, che restituisce l'istanza di ResourceManager che gestisce la risorsa fortemente tipizzata.A static (C#) or Shared (Visual Basic) and read-only ResourceManager property, which returns the ResourceManager instance that manages the strongly typed resource.

  • Una proprietà Culture statica, che consente di configurare le impostazioni cultura utilizzate per il recupero delle risorse.A static Culture property, which allows you to set the culture used for resource retrieval. Per impostazione predefinita, il valore è null, il che significa che vengono utilizzate le attuali impostazioni cultura dell'interfaccia utente.By default, its value is null, which means that that the current UI culture is used.

  • Una proprietà static (C#) o Shared (Visual Basic) di sola lettura per ogni risorsa nel file .resources.One static (C#) or Shared (Visual Basic) and read-only property for each resource in the .resources file. Il nome della proprietà è il nome della risorsa.The name of the property is the name of the resource.-

Ad esempio, il seguente comando compila un file di risorse denominato StringResources.txt in StringResources.resources e genera una classe denominata StringResources in un file di codice sorgente Visual Basic denominato StringResources.vb utilizzabile per accedere a Gestione risorse.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   

Vedere ancheSee Also

StrumentiTools
Risorse nelle applicazioni desktopResources in Desktop Apps
Creazione dei file di risorsaCreating Resource Files
Al.exe (Assembly Linker)Al.exe (Assembly Linker)
Prompt dei comandiCommand Prompts