Resgen.exe (Generator pliku zasobów)Resgen.exe (Resource File Generator)

Generator plików zasobów (Resgen.exe) konwertuje pliki tekstowe (txt lub restext) i pliki zasobów w formacie XML (resx) na pliki binarne (resources) środowiska uruchomieniowego języka wspólnego, które można osadzić w binarnym pliku wykonywalnym środowiska uruchomieniowego lub zestawie satelickim.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. (Zobacz Tworzenie plików zasobów).(See Creating Resource Files.)

Program Resgen.exe to uniwersalne narzędzie do konwersji zasobów, które wykonuje następujące zadania:Resgen.exe is a general-purpose resource conversion utility that performs the following tasks:

  • Konwertuje pliki txt lub restext na pliki resx lub resources.Converts .txt or .restext files to .resources or .resx files. (Format plików restext jest identyczny z formatem plików txt.(The format of .restext files is identical to the format of .txt files. Jednak rozszerzenie restext pomaga łatwiej zidentyfikować pliki tekstowe, które zawierają definicje zasobów).However, the .restext extension helps you identify text files that contain resource definitions more easily.)

  • Konwertuje pliki resources na pliki tekstowe lub resx.Converts .resources files to text or .resx files.

  • Konwertuje pliki resx na pliki tekstowe lub resources.Converts .resx files to text or .resources files.

  • Wyodrębnia zasoby ciągu z zestawu do pliku RESW, który jest odpowiedni do użycia w aplikacji ze sklepu Windows 8. x.Extracts the string resources from an assembly into a .resw file that is suitable for use in a Windows 8.x Store app.

  • Tworzy klasę o jednoznacznie określonym typie, która zapewnia dostęp do poszczególnych nazwanych zasobów i do ResourceManager wystąpienia.Creates a strongly typed class that provides access to individual named resources and to the ResourceManager instance.

Jeśli działanie programu Resgen.exe kończy się niepowodzeniem z dowolnej przyczyny, zwracaną wartością jest -1.If Resgen.exe fails for any reason, the return value is –1.

Aby uzyskać pomoc dotyczącą Resgen.exe, można użyć następującego polecenia bez określonych opcji, aby wyświetlić składnię polecenia i opcje dla 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  

Można również użyć /? przełącznika:You can also use the /? switch:

resgen /?  

Jeśli używasz Resgen.exe do generowania plików binarnych. resources, możesz użyć kompilatora języka do osadzenia plików binarnych w zestawach wykonywalnych lub użyć konsolidatora zestawu (Al.exe) do skompilowania ich do zestawów satelickich.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.

To narzędzie jest instalowane automatycznie z programem Visual Studio.This tool is automatically installed with Visual Studio. Aby uruchomić narzędzie, użyj programu Visual studio wiersz polecenia dla deweloperów lub Visual Studio Developer PowerShell.To run the tool, use Visual Studio Developer Command Prompt or Visual Studio Developer PowerShell.

W wierszu polecenia wpisz następujące polecenie:At the command prompt, type the following:

SkładniaSyntax

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

ParametryParameters

Parametr lub opcjaParameter or switch OpisDescription
/define:symbol1[, symbol2,...]/define: symbol1[, symbol2,...] Począwszy od .NET Framework 4,5, obsługuje kompilacji warunkowej w plikach zasobów tekstowych (. txt lub. restext).Starting with the .NET Framework 4.5, supports conditional compilation in text-based (.txt or .restext) resource files. Jeśli symbol odnosi się do symbolu zawartego w wejściowym pliku tekstowym w #ifdef konstrukcji, skojarzony zasób ciągu jest zawarty w pliku 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. Jeśli wejściowy plik tekstowy zawiera #if ! instrukcję z symbolem, który nie jest zdefiniowany przez /define przełącznik, skojarzony zasób ciągu jest zawarty w pliku Resources.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 jest ignorowany, jeśli jest używany z plikami nietekstowymi./define is ignored if it is used with non-text files. W symbolach jest uwzględniania wielkość liter.Symbols are case-sensitive.

Aby uzyskać więcej informacji na temat tej opcji, zobacz warunkowe Kompilowanie zasobów w dalszej części tego tematu.For more information about this option, see Conditionally Compiling Resources later in this topic.
useSourcePath Określa, że bieżący katalog pliku wejściowego ma być używany na potrzeby rozpoznawania względnych ścieżek plików.Specifies that the input file's current directory is to be used to resolve relative file paths.
/compile Umożliwia określenie wielu plików tekstowych lub resx w celu konwersji na wiele plików resources w pojedynczej zbiorczej operacji.Enables you to specify multiple .resx or text files to convert to multiple .resources files in a single bulk operation. Jeśli ta opcja nie jest określona, można określić tylko jeden argument pliku wejściowego.If you do not specify this option, you can specify only one input file argument. Pliki wyjściowe mają nazwę filename. resources.Output files are named filename.resources.

Tej opcji nie można używać z /str: opcją.This option cannot be used with the /str: option.

Aby uzyskać więcej informacji na temat tej opcji, zobacz Kompilowanie lub konwertowanie wielu plików w dalszej części tego tematu.For more information about this option, see Compiling or Converting Multiple Files later in this topic.
/r: assembly/r: assembly Odwołuje się do metadanych z określonego zestawu.References metadata from the specified assembly. Jest używana podczas konwersji plików resx i zezwala programowi Resgen.exe na serializację lub deserializację zasobów obiektu.It is used when converting .resx files and allows Resgen.exe to serialize or deserialize object resources. Jest podobna do /reference: /r: opcji lub dla kompilatorów C# i Visual Basic.It is similar to the /reference: or /r: options for the C# and Visual Basic compilers.
filename.extension Określa nazwę pliku wejściowego do konwersji.Specifies the name of the input file to convert. Jeśli używasz pierwszej dłuższa składni wiersza polecenia przedstawionej przed tą tabelą, extension musi to być jedna z następujących:If you're using the first, lengthier command-line syntax presented before this table, extension must be one of the following:

.txt lub .restext.txt or .restext
Plik tekstowy do konwersji na plik resources lub resx.A text file to convert to a .resources or a .resx file. Pliki tekstowe mogą zawierać tylko zasoby w postaci ciągów.Text files can contain only string resources. Aby uzyskać informacje o formacie pliku, zobacz sekcję "zasoby w plikach tekstowych" w temacie Tworzenie plików zasobów.For information about the file format, see the "Resources in Text Files" section of Creating Resource Files.

.resx.resx
Plik zasobów w języku XML do konwersji na plik .resources lub plik tekstowy (txt lub restext).An XML-based resource file to convert to a .resources or a text (.txt or .restext) file.

.resources.resources
Plik binarny zasobów do konwersji na plik resx lub plik tekstowy (txt lub restext).A binary resource file to convert to a .resx or a text (.txt or .restext) file.

Jeśli używasz drugiej, krótszej składni wiersza polecenia przedstawionej przed tą tabelą, extension należy wykonać następujące czynności:If you're using the second, shorter command-line syntax presented before this table, extension must be the following:

.exe lub .dll.exe or .dll
Zestaw .NET Framework (plik wykonywalny lub biblioteka), którego zasoby ciągu mają zostać wyodrębnione do pliku. resw, aby można było ich używać w tworzeniu aplikacji ze sklepu Windows 8. x.A .NET Framework assembly (executable or library) whose string resources are to be extracted to a .resw file for use in developing Windows 8.x Store apps.
outputFilename.extension Określa nazwę i typ tworzonego pliku zasobów.Specifies the name and type of the resource file to create.

Ten argument jest opcjonalny podczas konwersji z pliku txt, restext lub resx na plik resources.This argument is optional when converting from a .txt, .restext, or .resx file to a .resources file. Jeśli nie określisz outputFilename , Resgen.exe dołącza rozszerzenie. resources do danych wejściowych filename i zapisuje plik w katalogu, który zawiera 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.

outputFilename.extensionArgument jest obowiązkowy podczas konwersji z pliku Resources.The outputFilename.extension argument is mandatory when converting from a .resources file. Określa nazwę pliku z rozszerzeniem resx podczas konwersji pliku resources na plik zasobów w formacie XML.Specify a file name with the .resx extension when converting a .resources file to an XML-based resource file. Określa nazwę pliku z rozszerzeniem txt lub restext podczas konwersji na plik resources lub plik tekstowy.Specify a file name with the .txt or .restext extension when converting a .resources file to a text file. Plik resources należy konwertować na plik txt tylko wtedy, gdy plik resources zawiera wyłącznie wartości w postaci ciągów.You should convert a .resources file to a .txt file only when the .resources file contains only string values.
outputDirectory W przypadku aplikacji ze sklepu Windows 8. x, określa katalog, w którym zostanie zapisany plik. resw zawierający zasoby ciągu filename.extension .For Windows 8.x Store apps, specifies the directory in which a .resw file that contains the string resources in filename.extension will be written. outputDirectory musi już istnieć.outputDirectory must already exist.
/str: language[,namespace[,classname[,filename]]]/str: language[,namespace[,classname[,filename]]] Tworzy plik klasy zasobów o jednoznacznie określonym typie w języku programowania określonym w language opcji.Creates a strongly typed resource class file in the programming language specified in the language option. language może składać się z jednego z następujących literałów:language can consist of one of the following literals:

— Dla języka C#: c# , cs , lub csharp .- For C#: c#, cs, or csharp.
-Dla Visual Basic: vb lub visualbasic .- For Visual Basic: vb or visualbasic.
— Dla języka VBScript: vbs lub vbscript .- For VBScript: vbs or vbscript.
— Dla języka C++: c++ , mc , lub cpp .- For C++: c++, mc, or cpp.
— W przypadku języka JavaScript: js , jscript lub javascript .- For JavaScript: js, jscript, or javascript.

namespaceOpcja określa domyślną przestrzeń nazw projektu, classname opcja określa nazwę wygenerowanej klasy, a filename opcja określa nazwę pliku klasy.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.

/str:Opcja zezwala na tylko jeden plik wejściowy, dlatego nie można jej używać z /compile opcją.The /str: option allows only one input file, so it cannot be used with the /compile option.

Jeśli namespace jest określony classname , ale nie jest, nazwa klasy pochodzi od nazwy pliku wyjściowego (na przykład podkreślenia są zastępowane dla kropek).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). Zasoby silnie typizowane mogą nie działać poprawnie jako wynik.The strongly typed resources might not work correctly as a result. Aby tego uniknąć, należy określić zarówno nazwę klasy, jak i nazwę pliku wyjściowego.To avoid this, specify both class name and output file name.

Aby uzyskać więcej informacji na temat tej opcji, zobacz Generowanie klasy zasobów o jednoznacznie określonym typie w dalszej części tego tematu.For more information about this option, see Generating a Strongly Typed Resource Class later in this topic.
/publicClass Tworzy silnie typizowaną klasę zasobu jako klasę publiczną.Creates a strongly typed resource class as a public class. Domyślnie Klasa zasobów jest internal w języku C# i Friend w Visual Basic.By default, the resource class is internal in C# and Friend in Visual Basic.

Ta opcja jest ignorowana, jeśli /str: opcja nie jest używana.This option is ignored if the /str: option is not used.

Program Resgen.exe i typy plików zasobówResgen.exe and Resource File Types

Aby program Resgen.exe mógł pomyślnie konwertować zasoby, pliki tekstowe i resx muszą mieć poprawny format.In order for Resgen.exe to successfully convert resources, text and .resx files must follow the correct format.

Pliki tekstowe (txt i restext)Text (.txt and .restext) Files

Pliki tekstowe (txt lub restext) mogą zawierać tylko zasoby w postaci ciągów.Text (.txt or .restext) files may contain only string resources. Zasoby w postaci ciągów są przydatne podczas pisania aplikacji, która musi być przetłumaczona na kilka języków.String resources are useful if you are writing an application that must have strings translated into several languages. Na przykład można łatwo poddać regionalizacji napisy w menu przy użyciu odpowiedniego zasobu w postaci ciągu.For example, you can easily regionalize menu strings by using the appropriate string resource. Program Resgen.exe odczytuje pliki tekstowe, które zawierają pary nazwa/wartość, gdzie nazwa jest ciągiem opisującym zasób, a wartość to właśnie ciąg zasobu.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.

Uwaga

Aby uzyskać informacje na temat formatu plików txt i. restext, zobacz sekcję "zasoby w plikach tekstowych" tworzenia plików zasobów.For information about the format of .txt and .restext files, see the "Resources in Text Files" section of Creating Resource Files.

Plik tekstowy, który zawiera zasoby, musi być zapisany z użyciem kodowania UTF-8 lub Unicode (UTF-16), chyba że zawiera tylko znaki z zakresu Łaciński podstawowy (do 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). Program Resgen.exe usuwa rozszerzone znaki ANSI podczas przetwarzania pliku tekstowego, który został zapisany przy użyciu kodowania ANSI.Resgen.exe removes extended ANSI characters when it processes a text file that is saved using ANSI encoding.

Program Resgen.exe sprawdza, czy plik tekstowy zawiera zduplikowane nazwy zasobów.Resgen.exe checks the text file for duplicate resource names. Jeśli plik tekstowy zawiera zduplikowane nazwy zasobów, program Resgen.exe wyświetli ostrzeżenie i zignoruje drugą wartość.If the text file contains duplicate resource names, Resgen.exe will emit a warning and ignore the second value.

Pliki resx.resx Files

Format plików zasobów resx składa się z wpisów XML.The .resx resource file format consists of XML entries. Można określić zasoby w postaci ciągów w tych wpisach XML, tak jak w plikach tekstowych.You can specify string resources within these XML entries, as you would in text files. Główną zaletą plików resx w porównaniu z plikami tekstowymi jest to, że można określić lub osadzić w nich obiekty.A primary advantage of .resx files over text files is that you can also specify or embed objects. Podczas przeglądania pliku resx można zobaczyć binarną formę osadzonego obiektu (na przykład obrazka), gdy te informacje binarne są częścią manifestu zasobu.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. Tak jak w przypadku plików tekstowych, plik resx można otworzyć za pomocą edytora tekstów (takiego jak Notatnik lub program Microsoft Word), a następnie można pisać i analizować jego zawartość, a także wykonywać na niej różne operacje.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. Należy zauważyć, że wymaga to dobrej znajomości tagów XML i struktury pliku resx.Note that this requires a good knowledge of XML tags and the .resx file structure. Aby uzyskać więcej informacji o formacie pliku resx, zobacz sekcję "zasoby w plikach resx" tematu Tworzenie plików zasobów.For more details on the .resx file format, see the "Resources in .resx Files" section of Creating Resource Files.

Aby utworzyć plik resources, który zawiera osadzone obiekty niebędące ciągami, musisz użyć Resgen.exe do przekonwertowania pliku resx zawierającego obiekty lub dodać zasoby obiektów do pliku bezpośrednio z kodu, wywołując metody dostarczone przez ResourceWriter klasę.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.

Jeśli plik resx lub resources zawiera obiekty i zostanie użyty program Resgen.exe w celu przekonwertowania go na plik tekstowy, wszystkie zasoby w postaci ciągów zostaną przekonwertowane poprawnie, ale typy danych obiektów niebędących ciągami również zostaną zapisane w pliku jako ciągi.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. W wyniku konwersji obiekty osadzone zostaną utracone, a program Resgen.exe zgłosi, że wystąpił błąd podczas pobierania zasobów.You will lose the embedded objects in the conversion, and Resgen.exe will report that an error occurred in retrieving the resources.

Konwertowanie między typami plików zasobówConverting Between Resources File Types

Podczas konwertowania między różnymi typami plików zasobów program Resgen.exe może nie być w stanie dokonać konwersji lub może spowodować utratę informacji o określonych zasobach, w zależności od typu plików źródłowego i docelowego.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. W poniższej tabeli określono typy konwersji, które kończą się sukcesem w przypadku konwertowania z jednego typu pliku zasobów na inny.The following table specifies the types of conversions that are successful when converting from one resource file type to another.

Konwersja zConvert from Na plik tekstowyTo text file Na plik resxTo .resx file Na plik reswTo .resw file Na plik resourcesTo .resources file
Plik tekstowy (txt lub restext)Text (.txt or .restext) file -- Brak problemówNo issues NieobsługiwaneNot supported Brak problemówNo issues
Plik resx.resx file Konwersja nie powiedzie się, jeżeli plik zawiera zasoby, które nie są ciągami (w tym łącza do plików)Conversion fails if file contains non-string resources (including file links) -- NieobsługiwaneNot supported Brak problemówNo issues
Plik resources.resources file Konwersja nie powiedzie się, jeżeli plik zawiera zasoby, które nie są ciągami (w tym łącza do plików)Conversion fails if file contains non-string resources (including file links) Brak problemówNo issues NieobsługiwaneNot supported --
Zestaw exe lub dll.exe or .dll assembly NieobsługiwaneNot supported NieobsługiwaneNot supported Tylko zasoby w postaci ciągów (w tym nazwy ścieżek) są rozpoznawane jako zasobyOnly string resources (including path names) are recognized as resources NieobsługiwaneNot supported

Wykonywanie określonych zadań w programie Resgen.exePerforming Specific Resgen.exe Tasks

Resgen.exe można używać na różne sposoby: do kompilowania pliku zasobów tekstowego lub XML w pliku binarnym, do konwersji między formatami plików zasobów, a także do generowania klasy, która zawija ResourceManager funkcjonalność i zapewnia dostęp do zasobów.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. Ta sekcja zawiera szczegółowe informacje dotyczące każdego zadania:This section provides detailed information about each task:

Kompilowanie zasobów do pliku binarnegoCompiling Resources into a Binary File

Najbardziej powszechnym zastosowaniem programu Resgen.exe jest kompilacja pliku zasobów w formacie tekstowym (pliku txt lub restext) lub w formacie XML (pliku resx) do pliku binarnego resources.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. Plik wyjściowy może zostać osadzony w zestawie głównym przez kompilator języka lub w zestawie satelickim przez konsolidator zestawu (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).

Składnia służąca do kompilacji pliku zasobów jest następująca:The syntax to compile a resource file is:

resgen inputFilename [outputFilename]

gdzie parametrami są:where the parameters are:

inputFilename
Nazwa pliku zasobów, łącznie z rozszerzeniem, który należy skompilować.The file name, including the extension, of the resource file to compile. Program Resgen.exe kompiluje tylko pliki z rozszerzeniem txt, restext lub resx.Resgen.exe only compiles files with extensions of .txt, .restext, or .resx.

outputFilename
Nazwa pliku wyjściowego.The name of the output file. W przypadku pominięcia outputFilename Resgen.exe tworzy plik resources o nazwie pliku głównego inputFilename w tym samym katalogu, co inputFilename .If you omit outputFilename, Resgen.exe creates a .resources file with the root file name of inputFilename in the same directory as inputFilename. Jeśli outputFilename zawiera ścieżkę katalogu, katalog musi istnieć.If outputFilename includes a directory path, the directory must exist.

Należy podać w pełni kwalifikowaną przestrzeń nazw dla pliku resources, określając ją w nazwie pliku i oddzielając od głównej nazwy plików kropką.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. Na przykład, jeśli outputFilename jest MyCompany.Libraries.Strings.resources , przestrzeń nazw to webcompany. librarys.For example, if outputFilename is MyCompany.Libraries.Strings.resources, the namespace is MyCompany.Libraries.

Poniższe polecenie odczytuje pary nazwa/wartość z pliku Resources.txt i zapisuje w binarnym pliku resources o nazwie Resources.resources.The following command reads the name/value pairs in Resources.txt and writes a binary .resources file named Resources.resources. Nazwa pliku wyjściowego nie jest jawnie określona, więc domyślnie plik wyjściowy otrzymuje taką samą nazwę jak plik wejściowy.Because the output file name is not specified explicitly, it receives the same name as the input file by default.

resgen Resources.txt

Poniższe polecenie odczytuje pary nazwa/wartość z pliku Resources.restext i zapisuje w binarnym pliku zasobów o nazwie 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  

Poniższe polecenie odczytuje plik wejściowy w formacie XML o nazwie Resources.resx i zapisuje plik binarny resources o nazwie 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  

Konwertowanie między typami plików zasobówConverting Between Resource File Types

Oprócz kompilowania plików zasobów w formacie tekstowym lub XML do plików binarnych resources, program Resgen.exe może przekonwertować dowolny obsługiwany typ pliku na dowolny inny obsługiwany typ.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. Oznacza to, że można wykonywać następujące konwersje:This means that it can perform the following conversions:

  • Pliki txt i restext na pliki resx..txt and .restext files to .resx files.

  • Pliki resx na pliki txt i restext..resx files to .txt and .restext files.

  • Pliki resources na pliki txt i restext..resources files to .txt and .restext files.

  • Pliki resources na pliki resx..resources files to .resx files.

Składnia jest taka sama, jak pokazana w poprzedniej sekcji.The syntax is the same as that shown in the previous section.

Ponadto można użyć Resgen.exe do przekonwertowania osadzonych zasobów w zestawie .NET Framework do pliku RESW.In addition, you can use Resgen.exe to convert embedded resources in a .NET Framework assembly to a .resw file tor Windows 8.x Store apps.

Poniższe polecenie odczytuje binarny plik zasobów Resources.resources i zapisuje plik wyjściowy w formacie XML o nazwie 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  

Poniższe polecenie odczytuje plik zasobów w formacie tekstowym o nazwie StringResources.txt i zapisuje plik zasobów w formacie XML o nazwie LibraryResources.resx.The following command reads a text-based resources file named StringResources.txt and writes an XML-based resources file named LibraryResources.resx. Ponadto pliku resx można użyć, oprócz przechowywania zasobów w postaci ciągów, do przechowywania zasobów niebędących ciągami.In addition to containing string resources, the .resx file could also be used to store non-string resources.

resgen StringResources.txt LibraryResources.resx  

Poniższe dwa polecenia odczytują plik zasobów w formacie XML o nazwie Resources.resx i zapisują pliki tekstowe o nazwach Resources.txt i 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. Należy zauważyć, że jeżeli plik resx zawiera jakiekolwiek obiekty osadzone, nie zostaną one dokładnie przekonwertowane na pliki tekstowe.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  

Kompilowanie lub konwertowanie wielu plikówCompiling or Converting Multiple Files

Możesz użyć przełącznika, /compile Aby skonwertować listę plików zasobów z jednego formatu do innego w ramach jednej operacji.You can use the /compile switch to convert a list of resource files from one format to another in a single operation. Składnia jest następująca:The syntax is:

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

Poniższe polecenie kompiluje trzy pliki, StringResources.txt, TableResources.resw i ImageResources.resw, do oddzielnych plików resources o nazwach StringResources.resources, TableResources.resources i 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  

Eksportowanie zasobów do pliku reswExporting Resources to a .resw File

Jeśli tworzysz aplikację ze sklepu Windows 8. x, możesz chcieć używać zasobów z istniejącej aplikacji klasycznej.If you're developing a Windows 8.x Store app, you may want to use resources from an existing desktop app. Jednak te dwa rodzaje aplikacji obsługują różne formaty plików.However, the two kinds of applications support different file formats. W aplikacjach komputerowych zasoby w plikach tekstowych (txt lub restex) lub w plikach resx są kompilowane do binarnych plików resources.In desktop apps, resources in text (.txt or .restext) or .resx files are compiled into binary .resources files. W aplikacjach ze sklepu Windows 8. x pliki. resw są kompilowane do plików binarnych (PRI) pakietu.In Windows 8.x Store apps, .resw files are compiled into binary package resource index (PRI) files. Możesz użyć Resgen.exe do mostkowania tej przerwy przez wyodrębnienie zasobów z pliku wykonywalnego lub zestawu satelickiego i zapisanie ich do jednego lub więcej plików. resw, które mogą być używane podczas tworzenia aplikacji do sklepu Windows 8. x.You can use Resgen.exe to bridge this gap by extracting resources from an executable or a satellite assembly and writing them to one or more .resw files that can be used when developing a Windows 8.x Store app.

Ważne

Program Visual Studio automatycznie obsługuje wszystkie konwersje niezbędne do włączenia zasobów w bibliotece przenośnej do aplikacji ze sklepu Windows 8. x.Visual Studio automatically handles all conversions necessary for incorporating the resources in a portable library into a Windows 8.x Store app. Używanie Resgen.exe bezpośrednio do konwertowania zasobów w zestawie na format pliku. resw jest istotne tylko dla deweloperów, którzy chcą opracowywać aplikację ze sklepu Windows 8. x poza programem 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 Store app outside of Visual Studio.

Składnia służąca do generowania plików resw z zestawu jest następująca:The syntax to generate .resw files from an assembly is:

resgen filename.extension  [outputDirectory]  

gdzie parametrami są:where the parameters are:

filename.extension
Nazwa zestawu programu .NET Framework (plik wykonywalny lub biblioteka DLL).The name of a .NET Framework assembly (an executable or .DLL). Jeśli plik nie zawiera żadnych zasobów, program Resgen.exe nie tworzy żadnych plików.If the file contains no resources, Resgen.exe does not create any files.

outputDirectory
Istniejący katalog, w którym mają zostać zapisane pliki resw.The existing directory to which to write the .resw files. W przypadku outputDirectory pominięcia pliki. resw są zapisywane w bieżącym katalogu.If outputDirectory is omitted, .resw files are written to the current directory. Program Resgen.exe tworzy jeden plik resw dla każdego pliku resources w zestawie.Resgen.exe creates one .resw file for each .resources file in the assembly. Główna nazwa pliku resw jest taka sama jak główna nazwa pliku resources.The root file name of the .resw file is the same as the root name of the .resources file.

Poniższe polecenie tworzy plik resw w katalogu Win8Resources dla każdego pliku resources osadzonego w zestawie 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  

Warunkowe kompilowanie zasobówConditionally Compiling Resources

Począwszy od .NET Framework 4,5, Resgen.exe obsługuje warunkową kompilację zasobów ciągów w plikach tekstowych (txt i. restext).Starting with the .NET Framework 4.5, Resgen.exe supports conditional compilation of string resources in text (.txt and .restext) files. Dzięki temu można używać pojedynczego pliku zasobów w formacie tekstowym w wielu konfiguracjach kompilacji.This enables you to use a single text-based resource file in multiple build configurations.

W pliku txt lub. restext używasz #ifdef ...#endifIn a .txt or .restext file, you use the #ifdef#endif konstrukcja do uwzględnienia zasobu w pliku Binary. resources, jeśli jest zdefiniowany symbol, i używasz #if ! konstrukcji... #endif konstrukcja, aby dołączyć zasób, jeśli nie zdefiniowano symbolu.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. W czasie kompilacji można definiować symbole przy użyciu /define: opcji, a po niej rozdzielone przecinkami listę symboli.At compile time, you then define symbols by using the /define: option followed by a comma-delimited list of symbols. Porównanie uwzględnia wielkość liter; przypadek symboli zdefiniowany przez /define musi odpowiadać wielkości liter symboli w plikach tekstowych do skompilowania.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.

Na przykład następujący plik o nazwie UIResources. rext zawiera zasób ciągu o nazwie AppTitle , który może przyjmować jedną z trzech wartości, w zależności od tego, czy są zdefiniowane symbole o nazwach PRODUCTION , CONSULT lub 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  

Następnie plik można skompilować do binarnego pliku resources, używając następującego polecenia:The file can then be compiled into a binary .resources file with the following command:

resgen /define:CONSULT UIResources.restext  

To polecenie utworzy plik resources zawierający dwa zasoby w postaci ciągów.This produces a .resources file that contains two string resources. Wartość AppTitle zasobu to "My konsultingowego menedżera projektu firmy".The value of the AppTitle resource is "My Consulting Company Project Manager".

Generowanie silnie typizowanej klasy zasobówGenerating a Strongly Typed Resource Class

Program Resgen.exe obsługuje silnie typizowane zasoby, które hermetyzują dostęp do zasobów przez tworzenie klas zawierających zestaw statycznych właściwości tylko do odczytu.Resgen.exe supports strongly typed resources, which encapsulates access to resources by creating classes that contain a set of static read-only properties. Zapewnia to alternatywę do wywoływania metod ResourceManager klasy bezpośrednio w celu pobierania zasobów.This provides an alternative to calling the methods of the ResourceManager class directly to retrieve resources. Obsługę zasobów o jednoznacznie określonym typie można włączyć przy użyciu /str opcji w Resgen.exe, która zawija funkcjonalność StronglyTypedResourceBuilder klasy.You can enable strongly typed resource support by using the /str option in Resgen.exe, which wraps the functionality of the StronglyTypedResourceBuilder class. Po określeniu /str opcji dane wyjściowe Resgen.exe jest klasą zawierającą jednoznacznie wpisane właściwości, które pasują do zasobów, do których odwołuje się parametr wejściowy.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. Ta klasa dostarcza silnie typizowany dostęp tylko do odczytu do zasobów, które są dostępne w przetwarzanym pliku.This class provides strongly typed read-only access to the resources that are available in the file processed.

Składania służąca do tworzenia silnie typizowanych zasobów jest następująca:The syntax to create a strongly typed resource is:

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

Parametry i przełączniki są następujące:The parameters and switches are:

inputFilename
Nazwa pliku zasobów, łącznie z rozszerzeniem, dla którego należy wygenerować silnie typizowaną klasę zasobów.The file name, including the extension, of the resource file for which to generate a strongly typed resource class. Plik może być plikiem tekstowym, plikiem w formacie XML lub binarnym plikiem resources; może mieć rozszerzenie txt, restext, resw lub 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
Nazwa pliku wyjściowego.The name of the output file. Jeśli outputFilename zawiera ścieżkę katalogu, katalog musi istnieć.If outputFilename includes a directory path, the directory must exist. W przypadku pominięcia outputFilename Resgen.exe tworzy plik resources o nazwie pliku głównego inputFilename w tym samym katalogu, co 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 może to być plik tekstowy, oparty na języku XML lub binarny. resources.outputFilename can be a text-based, XML-based, or binary .resources file. Jeśli rozszerzenie pliku outputFilename różni się od rozszerzenia pliku inputFilename , Resgen.exe wykonuje konwersję plików.If the file extension of outputFilename is different from the file extension of inputFilename, Resgen.exe performs the file conversion.

Jeśli inputFilename jest to plik resources, Resgen.exe kopiuje plik resources, jeśli outputFilename również jest to plik resources.If inputFilename is a .resources file, Resgen.exe copies the .resources file if outputFilename is also a .resources file. outputFilenameW przypadku pominięcia Resgen.exe nadpisać inputFilename przy użyciu identycznego pliku Resources.If outputFilename is omitted, Resgen.exe overwrites inputFilename with an identical .resources file.

językowelanguage
Język, w którym ma zostać wygenerowany kod źródłowy klasy zasobów o jednoznacznie określonym typie.The language in which to generate source code for the strongly typed resource class. Możliwe wartości to cs , C# , i csharp dla kodu w języku C# vb oraz visualbasic dla kodu Visual Basic, vbs a vbscript w przypadku kodu VBScript, i c++ , mc oraz cpp dla kodu 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.

obszarunamespace
Przestrzeń nazw zawierająca silnie typizowaną klasę zasobów.The namespace that contains the strongly typed resource class. Plik resources i klasa zasobów powinny mieć taką samą przestrzeń nazw.The .resources file and the resource class should have the same namespace. Aby uzyskać informacje o określaniu przestrzeni nazw w programie outputFilename , zobacz Kompilowanie zasobów do pliku binarnego.For information about specifying the namespace in the outputFilename, see Compiling Resources into a Binary File. W przypadku pominięcia przestrzeni nazw Klasa zasobów nie jest zawarta w przestrzeni nazw.If namespace is omitted, the resource class is not contained in a namespace.

nazwąclassname
Nazwa silnie typizowanej klasy zasobów.The name of the strongly typed resource class. Powinna odpowiadać głównej nazwie pliku resources.This should correspond to the root name of the .resources file. Na przykład jeśli program Resgen.exe generuje plik resources o nazwie MyCompany.Libraries.Strings.resources, nazwa silnie typizowanej klasy zasobów to 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. Jeśli ClassName zostanie pominięty, wygenerowana Klasa jest pochodną nazwy głównej outputFilename .If classname is omitted, the generated class is derived from the root name of outputFilename. outputFilenameW przypadku pominięcia wygenerowana Klasa jest pochodną nazwy głównej inputFilename .If outputFilename is omitted, the generated class is derived from the root name of inputFilename.

ClassName nie może zawierać nieprawidłowych znaków, takich jak spacje osadzone.classname cannot contain invalid characters such as embedded spaces. Jeśli ClassName zawiera osadzone spacje lub jeśli ClassName jest generowana domyślnie z inputFilename, a inputFilename zawiera osadzone spacje, Resgen.exe zastępuje wszystkie nieprawidłowe znaki znakiem podkreślenia ( _ ).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 (_).

Nazwa plikufilename
Nazwa pliku klasy.The name of the class file.

/publicclass
Sprawia, że Klasa zasobów o jednoznacznie określonym typie powinna być publiczna, a nie internal (w języku C#) lub Friend (w Visual Basic).Makes the strongly typed resource class public rather than internal (in C#) or Friend (in Visual Basic). Dzięki temu zasoby będą dostępne spoza zestawu, w którym są osadzone.This allows the resources to be accessed from outside the assembly in which they are embedded.

Ważne

Podczas tworzenia silnie typizowanej klasy zasobów nazwa pliku resources musi odpowiadać przestrzeni nazw i nazwie klasy generowanego kodu.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. Jednak program Resgen.exe umożliwia określenie opcji, które tworzą plik resources mający niezgodną nazwę.However, Resgen.exe allows you to specify options that produce a .resources file that has an incompatible name. Aby obejść ten problem, należy zmienić nazwę pliku wyjściowego po jego wygenerowaniu.To work around this behavior, rename the output file after it has been generated.

Silnie typizowana klasa zasobów ma następujące składowe:The strongly typed resource class has the following members:

  • Konstruktor bez parametrów, który może służyć do tworzenia wystąpienia klasy zasobów o jednoznacznie określonym typie.A parameterless constructor, which can be used to instantiate the strongly typed resource class.

  • A static (C#) lub Shared (Visual Basic) i właściwość tylko do odczytu ResourceManager , która zwraca ResourceManager wystąpienie zarządzające silnie określonym zasobem.A static (C#) or Shared (Visual Basic) and read-only ResourceManager property, which returns the ResourceManager instance that manages the strongly typed resource.

  • Właściwość statyczna Culture , która pozwala ustawić kulturę używaną do pobierania zasobów.A static Culture property, which allows you to set the culture used for resource retrieval. Domyślnie jego wartość to null , co oznacza, że jest używana bieżąca kultura interfejsu użytkownika.By default, its value is null, which means that the current UI culture is used.

  • Jedna static (C#) lub Shared (Visual Basic) i właściwość tylko do odczytu dla każdego zasobu w pliku Resources.One static (C#) or Shared (Visual Basic) and read-only property for each resource in the .resources file. Nazwa właściwości to nazwa zasobu.The name of the property is the name of the resource.-

Na przykład następujące polecenie kompiluje plik zasobów o nazwie StringResources.txt w StringResources. resources i generuje klasę o nazwie StringResources w Visual Basic źródłowym pliku o nazwie StringResources. vb, która może być używana do uzyskiwania dostępu do Menedżer zasobów.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

Zobacz teżSee also