Файл с расширением resx
This article discusses working with XML (.resx) files that contain resources. For information on working with binary resource files that have been embedded in assemblies, see ResourceManager.
There are also ways to work with .resx files other than programmatically. When you add a resource file to a Visual Studio project, Visual Studio provides an interface for creating and maintaining a .resx file, and automatically converts the .resx file to a .resources file at compile time. You can also use a text editor to manipulate a .resx file directly. However, to avoid corrupting the file, be careful not to modify any binary information that is stored in the file.
Перечисление ресурсов
В некоторых случаях может потребоваться извлечь из RESX-файла все ресурсы, а не конкретный ресурс. Для этого можно использовать класс System.Resources.ResXResourceReader , предоставляющий перечислитель для всех ресурсов в RESX-файле. Класс System.Resources.ResXResourceReader реализует перечислитель IDictionaryEnumerator, который возвращает объект DictionaryEntry , представляющий конкретный ресурс для каждой итерации цикла. Его свойство DictionaryEntry.Key возвращает ключ ресурса, а свойство DictionaryEntry.Value — значение ресурса.
В следующем примере создается объект ResXResourceReader для файла CarResources.resx, созданного в предыдущем примере, а затем выполняются итерации по файлу ресурсов. В этом примере в объект Automobile добавляются два объекта System.Collections.Generic.List , определенные в файле ресурсов, а в объект SortedList добавляются пять строк из шести. Значения в объекте SortedList преобразуются в массив параметров, который используется для отображения заголовков столбцов в консоли. Значения свойства Automobile также выводятся на консоль.
Create a .resx file
You can use the System.Resources.ResXResourceWriter class to create a .resx file programmatically, by following these steps:
Instantiate a ResXResourceWriter object by calling the ResXResourceWriter(String) method and supplying the name of the .resx file. The file name must include the .resx extension. If you instantiate the ResXResourceWriter object in a using block, you do not explicitly have to call the ResXResourceWriter.Close method in step 3.
Call the ResXResourceWriter.AddResource method for each resource you want to add to the file. Use the overloads of this method to add string, object, and binary (byte array) data. If the resource is an object, it must be serializable.
Call the ResXResourceWriter.Close method to generate the resource file and to release all resources. If the ResXResourceWriter object was created within a using block, resources are written to the .resx file and the resources used by the ResXResourceWriter object are released at the end of the using block.
The resulting .resx file has the appropriate header and a data tag for each resource added by the ResXResourceWriter.AddResource method.
Do not use resource files to store passwords, security-sensitive information, or private data.
The following example creates a .resx file named CarResources.resx that stores six strings, an icon, and two application-defined objects (two Automobile objects). The Automobile class, which is defined and instantiated in the example, is tagged with the SerializableAttribute attribute.
You can also use Visual Studio to create .resx files. At compile time, Visual Studio uses the Resource File Generator (Resgen.exe) to convert the .resx file to a binary resource (.resources) file, and also embeds it in either an application assembly or a satellite assembly.
You cannot embed a .resx file in a runtime executable or compile it into a satellite assembly. You must convert your .resx file into a binary resource (.resources) file by using the Resource File Generator (Resgen.exe). The resulting .resources file can then be embedded in an application assembly or a satellite assembly. For more information, see Create resource files.
Enumerate resources
In some cases, you may want to retrieve all resources, instead of a specific resource, from a .resx file. To do this, you can use the System.Resources.ResXResourceReader class, which provides an enumerator for all resources in the .resx file. The System.Resources.ResXResourceReader class implements IDictionaryEnumerator, which returns a DictionaryEntry object that represents a particular resource for each iteration of the loop. Its DictionaryEntry.Key property returns the resource's key, and its DictionaryEntry.Value property returns the resource's value.
The following example creates a ResXResourceReader object for the CarResources.resx file created in the previous example and iterates through the resource file. It adds the two Automobile objects that are defined in the resource file to a System.Collections.Generic.List object, and it adds five of the six strings to a SortedList object. The values in the SortedList object are converted to a parameter array, which is used to display column headings to the console. The Automobile property values are also displayed to the console.
Преобразование RESX-файлов в двоичные RESOURCES-файлы
Преобразование RESX-файлов во внедряемые двоичные файлы ресурсов (RESOURCES-файлы) имеет значительные преимущества. Хотя RESX-файлы легко читаются и обслуживаются при развертывании приложения, они редко поставляются с готовыми приложениями. Если они распространяются с приложением, то существуют в виде отдельных файлов наряду с исполняемым файлом приложения и сопровождающими его библиотеками. В отличие от RESX-файлов RESOURCES-файлы внедряются в исполняемый файл приложения или сопровождающие его сборки. Кроме того, если локализованные приложения полагаются на RESX-файлы во время выполнения, это означает, что ответственность за обработку перехода к другим ресурсам несет разработчик. Напротив, если создан ряд вспомогательных сборок, содержащих внедренные RESOURCES-файлы, процесс перехода на резервные ресурсы обрабатывается средой CLR.
Для преобразования RESX-файла в RESOURCES-файл используется генератор файлов ресурсов (resgen.exe), который имеет следующий базовый синтаксис:
Результат — двоичный файл ресурсов, который имеет такое же корневое имя файла, что и RESX-файл, и расширение RESOURCES-файла. Затем во время компиляции этот файл может быть компилирован в исполняемый файл или библиотеку. Если применяется компилятор Visual Basic, для внедрения RESOURCES-файла в исполняемый файл приложения используйте следующий синтаксис:
Затем RESOURCES-файл может быть также внедрен во вспомогательную сборку с помощью компоновщика сборок (al.exe), который имеет следующий базовый синтаксис:
Программы, которые поддерживают RESX расширение файла
Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают RESX файлы. RESX файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.
Ресурсы в формате текстовых файлов
В текстовых файлах (TXT или RESTEXT) можно сохранять только строковые ресурсы. Для нестроковых ресурсов используйте RESX-файлы или создавайте их программными средствами. Текстовые файлы, содержащие строковые ресурсы, имеют следующий формат.
Форматы TXT- и RESTEXT-файлов ресурсов идентичны. Расширение файла RESTEX служит для того, чтобы текстовые файлы сразу опознавались как файлы ресурсов на основе текста.
Строковые ресурсы представляются в виде пар имя/значение, где имя — строка, определяющая ресурс, а значение — строка ресурса, которая возвращается при передаче имени методу извлечения ресурсов, например, ResourceManager.GetString. Имя и значение должны быть разделены знаком равенства (=). Пример:
Не следует использовать файлы ресурсов для хранения паролей, конфиденциальной информации или личных данных.
В текстовых файлах допускаются пустые строки (то есть, ресурсы, значение которых равно String.Empty). Пример:
Любые пустые строки в текстовых файлах считаются содержащими пробелы и игнорируются.
В следующем примере определяются два строковых ресурса с именами OKButton и CancelButton .
Если в текстовом файле содержатся дубликаты имен, генератор файлов ресурсов (resgen.exe) отображает предупреждение и игнорирует второе имя.
значение не может содержать символы новой строки, но можно использовать escape-символы в стиле языка C, например \n для представления новой строки и \t для представления вкладки. Можно также включить символ обратной косой черты, если он экранирован (например, "\ \"). Также допускаются пустые строки.
Сохраняйте ресурсы в формате текстового файла с кодировкой UTF-8 или UTF-16 с прямым или обратным порядком байтов. Но генератор файлов ресурсов (resgen.exe), преобразующий TXT-файл в RESOURCES-файл, по умолчанию обрабатывает файлы в кодировке UTF-8. Если вы хотите, чтобы программа Resgen.exe могла работать с файлом в кодировке UTF-16, необходимо указать метку порядка байтов Юникода (U+FEFF) в начале файла.
В следующем примере используется файл ресурсов в текстовом формате GreetingResources.txt для простого консольного приложения "Hello World". В этом текстовом файле определены две строки — prompt и greeting , которые предлагают пользователю ввести свое имя и отображают приветствие.
Текстовый файл преобразуется в RESOURCES-файл с помощью следующей команды:
Если вы используете Visual Basic и файл с исходным кодом называется Greeting.vb, используйте следующую команду для создания исполняемого файла, содержащего внедренный RESOURCES-файл:
Retrieve a specific resource
The following example retrieves a form's caption string and icon by their resource names. It also retrieves the application-defined Automobile objects used in the previous example and displays them in a DataGridView control.
Создание RESX-файла
Для создания RESX-файла программным способом можно использовать класс System.Resources.ResXResourceWriter , выполнив следующие действия.
Создайте экземпляр объекта ResXResourceWriter , вызвав метод ResXResourceWriter(String) и указав имя RESX-файла. Имя файла должно включать в себя расширение RESX. Если экземпляр объекта ResXResourceWriter создается в блоке using , явный вызов метода ResXResourceWriter.Close на шаге 3 не требуется.
Вызовите метод ResXResourceWriter.AddResource для каждого ресурса, который необходимо добавить в файл. Используйте перегрузки этого метода для добавления строки, объекта и двоичных данных (массива байтов). Если ресурсом является объект, он должен быть сериализуемым.
Вызовите метод ResXResourceWriter.Close для создания файла ресурсов и освобождения всех ресурсов. Если объект ResXResourceWriter был создан в блоке using , ресурсы записываются в RESX-файл, а ресурсы, используемые объектом ResXResourceWriter , освобождаются в конце блока using .
В полученном RESX-файле имеется соответствующий заголовок и тег data для каждого ресурса, добавленного методом ResXResourceWriter.AddResource .
Не следует использовать файлы ресурсов для хранения паролей, конфиденциальной информации или личных данных.
В следующем примере создается RESX-файл с именем CarResources.resx, в котором хранятся шесть строк, значок и два объекта, определяемых приложением (два объекта Automobile ). Класс Automobile , определенный и созданный в этом примере, отмечен атрибутом SerializableAttribute.
Для создания RESX-файлов можно также использовать Visual Studio. Во время компиляции Visual Studio использует генератор файлов ресурсов (Resgen.exe) для преобразования RESX-файла в двоичный файл ресурсов (RESOURCES-файл) и внедряет этот файл в сборку приложения или вспомогательную сборку.
RESX-файл нельзя внедрить в исполняемый файл или скомпилировать во вспомогательную сборку. Необходимо преобразовать RESX-файл в двоичный файл ресурсов (RESOURCES-файл) с помощью генератора файлов ресурсов (Resgen.exe). Затем полученный RESOURCES-файл можно внедрить в сборку приложения или вспомогательную сборку. Дополнительные сведения см. в разделе Создание файлов ресурсов.
Программы, обслуживающие файл RESX
Windows
MAC OS
Linux
Ресурсы в RESX-файлах
В отличие от текстовых файлов, в которых могут храниться только строковые ресурсы, в XML-файлах ресурсов (RESX) могут храниться строки, двоичные данные (такие как изображения, значки и аудиоклипы) и программные объекты. RESX-файл содержит стандартный заголовок, который описывает формат записей ресурсов и включает сведения о версии XML, которые используются для анализа данных. За заголовком XML следуют данные в файле ресурсов. Каждый элемент данных состоит из пары "имя-значение", заключенной в тег data . Атрибут name этого тега определяет имя ресурса, а вложенный тег value содержит значение ресурса. Для строковых данных тег value содержит строку.
Например, следующий тег data определяет строковый ресурс с именем prompt и значением "Enter your name:".
Не следует использовать файлы ресурсов для хранения паролей, конфиденциальной информации или личных данных.
Для объектов ресурсов тег data содержит атрибут type , указывающий тип данных ресурса. Для объектов, состоящих из двоичных данных, тег data также включает атрибут mimetype , который указывает тип base64 двоичных данных.
Во всех RESX-файлах для создания и анализа двоичных данных заданного типа используется форматтер двоичной сериализации. В результате, если формат двоичной сериализации для объекта изменится недопустимым образом, RESX-файл может стать недействительным.
В следующем примере показана часть RESX-файла, в которой содержится ресурс Int32 и растровое изображение.
Так как RESX-файлы должны представлять собой XML-код с правильным, заранее определенным форматом, с ними не рекомендуется работать вручную, особенно если они содержат нестроковые ресурсы. Вместо этого в Visual Studio предусмотрен прозрачный интерфейс для создания RESX-файлов и управления ими. Дополнительные сведения см. в разделе Файлы ресурсов в Visual Studio. Создавать RESX-файлы и управлять ими можно также программно. Дополнительные сведения см. в разделе Работа с RESX-файлами программным способом.
Получение определенного ресурса
В следующем примере извлекается строка заголовка и значок формы по именам ресурсов. В нем также извлекаются определяемые приложением объекты Automobile , использованные в предыдущем примере, и эти объекты отображаются в элементе управления DataGridView.
Ресурсы в RESOURCES-файлах
Для программного создания двоичного файла ресурсов (RESOURCES-файла) непосредственно из кода можно использовать класс System.Resources.ResourceWriter. Для создания RESOURCES-файла из текстового файла или RESX-файла можно также использовать генератор файлов ресурсов (resgen.exe). Помимо строковых данных, RESOURCES-файл может содержать двоичные данные (массивы байтов) и данные объектов. Для программного создания RESOURCES-файла необходимо выполнить следующие действия.
Создайте объект ResourceWriter с уникальным именем файла. Это можно сделать, указав имя файла или файловый поток для конструктора класса ResourceWriter.
Вызовите одну из перегрузок метода ResourceWriter.AddResource для каждого именованного ресурса, который требуется добавить в файл. Ресурсом может быть строка, объект или коллекция двоичных данных (массив байтов).
Вызовете метод ResourceWriter.Close, чтобы записать ресурсы в файл и закрыть объект ResourceWriter.
Не следует использовать файлы ресурсов для хранения паролей, конфиденциальной информации или личных данных.
В следующем примере программным способом создается RESOURCES-файл с именем CarResources.resources, в котором хранятся шесть строк, значок и два объекта, определяемые приложением (два объекта Automobile ). Класс Automobile , определенный и созданный в этом примере, отмечен атрибутом SerializableAttribute, который позволяет ему сохраняться модулем форматирования при двоичной сериализации.
После создания RESOURCES-файла его можно внедрить в исполняемый файл среды выполнения или библиотеку, используя параметр /resource компилятора языка, или во вспомогательную сборку с помощью компоновщик сборок (Al.exe).
Convert .resx files to binary .resources files
Converting .resx files to embedded binary resource (.resources) files has significant advantages. Although .resx files are easy to read and maintain during application development, they are rarely included with finished applications. If they are distributed with an application, they exist as separate files apart from the application executable and its accompanying libraries. In contrast, .resources files are embedded in the application executable or its accompanying assemblies. In addition, for localized applications, relying on .resx files at run time places the responsibility for handling resource fallback on the developer. In contrast, if a set of satellite assemblies that contain embedded .resources files has been created, the common language runtime handles the resource fallback process.
To convert a .resx file to a .resources file, you use Resource File Generator (resgen.exe), which has the following basic syntax:
The result is a binary resource file that has the same root file name as the .resx file and a .resources file extension. This file can then be compiled into an executable or a library at compile time. If you are using the Visual Basic compiler, use the following syntax to embed a .resources file in an application's executable:
The .resources file can also be embedded in a satellite assembly by using Assembly Linker (al.exe), which has the following basic syntax:
Создайте текстовый файл, содержащий строковые ресурсы. Для преобразования текстового файла в двоичный файл ресурсов (RESOURCES-файл) можно использовать генератор файлов ресурсов (resgen.exe). Затем двоичный файл ресурсов можно внедрить в исполняемый файл приложения или библиотеку приложения с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe). Дополнительные сведения см. в разделе Ресурсы в текстовых файлах.
Создайте XML-файл ресурсов (RESX-файл), который содержит строки, изображения или данные объектов. Для преобразования RESX-файла в двоичный файл ресурсов (RESOURCES-файл) можно использовать генератор файлов ресурсов (resgen.exe). Затем двоичный файл ресурсов можно внедрить в исполняемый файл приложения или библиотеку приложения с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe). Дополнительные сведения см. в разделе Ресурсы в RESX-файлах.
Создайте XML-файл ресурсов (RESX-файл) программным способом с помощью типов в пространстве имен System.Resources. Можно создать RESX-файл, перечислить его ресурсы и извлечь конкретные ресурсы по имени. Дополнительные сведения см. в разделе Работа с RESX-файлами программным способом.
Создайте двоичный файл ресурсов (RESOURCES-файл) программным способом. Затем этот файл можно внедрить в исполняемый файл приложения или библиотеку приложения с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe). Дополнительные сведения см. в разделе Ресурсы в RESOURCES-файлах.
Создайте файл ресурсов в Visual Studio и включите этот файл в проект. В Visual Studio есть редактор ресурсов,с помощью которого можно добавлять, удалять и изменять ресурсы. Во время компиляции файл ресурсов автоматически преобразуется в двоичный RESOURCES-файл и внедряется в сборку приложения или вспомогательную сборку. Дополнительные сведения см. в разделе Файлы ресурсов в Visual Studio.
Как открыть файл RESX?
Шаг 1. Установите Microsoft Visual Studio программное обеспечение
Шаг 2. Убедитесь, что у вас установлена последняя версия Microsoft Visual Studio
Если проблемы с открытием файлов RESX по-прежнему возникают даже после установки Microsoft Visual Studio, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия Microsoft Visual Studio. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Если у вас установлена более старая версия Microsoft Visual Studio, она может не поддерживать формат RESX. Последняя версия Microsoft Visual Studio должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.
Шаг 3. Назначьте Microsoft Visual Studio для RESX файлов
После установки Microsoft Visual Studio (самой последней версии) убедитесь, что он установлен в качестве приложения по умолчанию для открытия RESX файлов. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Процедура изменения программы по умолчанию в Windows
- Щелкните правой кнопкой мыши на файле RESX и выберите « Открыть с помощью опцией».
- Выберите Выбрать другое приложение → Еще приложения
- Чтобы завершить процесс, выберите Найти другое приложение на этом. и с помощью проводника выберите папку Microsoft Visual Studio. Подтвердите, Всегда использовать это приложение для открытия RESX файлы и нажав кнопку OK .
Процедура изменения программы по умолчанию в Mac OS
Шаг 4. Убедитесь, что файл RESX заполнен и не содержит ошибок
Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл RESX, о котором идет речь. Проблемы с открытием файла могут возникнуть по разным причинам.
1. RESX может быть заражен вредоносным ПО - обязательно проверьте его антивирусом.
Если файл заражен, вредоносная программа, находящаяся в файле RESX, препятствует попыткам открыть его. Рекомендуется как можно скорее сканировать систему на наличие вирусов и вредоносных программ или использовать онлайн-антивирусный сканер. Если файл RESX действительно заражен, следуйте инструкциям ниже.
2. Проверьте, не поврежден ли файл
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.
4. Проверьте, может ли ваша система обрабатывать Microsoft Visual Studio
Если в системе недостаточно ресурсов для открытия файлов RESX, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла RESX мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле RESX.
Затем, изменим App.xaml:
- < Application x:Class =« WpfApplication1 . App »
- xmlns =« schemas . microsoft . com / winfx / 2006 / xaml / presentation »
- xmlns:x =« schemas . microsoft . com / winfx / 2006 / xaml »
- Startup =« Application_Startup »
- StartupUri =« MainWindow . xaml » >
- private void Application_Startup(object sender, StartupEventArgs e)
- ResourcesLoader.LoadResources(this.Resources);
- >
- static internal class ResourcesLoader
- // Получаем словарь ресурсов для сборки с заданной культурой.
- static private ResourceDictionary _GetResourceDictionary( CultureInfo cultureInfo)
- ResourceDictionary dictionary = new ResourceDictionary ();
- var resourceSet = Properties.Resources.ResourceManager.GetResourceSet(cultureInfo, true , true );
- foreach ( DictionaryEntry item in resourceSet)
- dictionary.Add(item.Key, item.Value);
- return dictionary;
- >
- static public void LoadResources( ResourceDictionary resourceDictionary)
- // Получаем словарь для основйной сборки.
- ResourceDictionary defaultDictionary = _GetResourceDictionary(DEFAULT_CULTURE);
- // Слдиваем этот словарь с остальными словарями приложения
- resourceDictionary.MergedDictionaries.Add(defaultDictionary);
- // Если текущая культура отличается от культуры по умолчанию -
- // грузим ресурсы из саттелитной сборки текущей культуры
- if ( Thread .CurrentThread.CurrentUICulture.CompareInfo !=
- DEFAULT_CULTURE.CompareInfo)
- ResourceDictionary localizedDictionary =
- _GetResourceDictionary( Thread .CurrentThread.CurrentUICulture);
- resourceDictionary.MergedDictionaries.Add(localizedDictionary);
- >
- >
- private static CultureInfo DEFAULT_CULTURE = CultureInfo .GetCultureInfo( "en-US" );
- >
- < Window x:Class ="WpfApplication1.MainWindow"
- xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
- Title ="MainWindow" Height ="100" Width ="225">
- < Label Content ="" FontSize ="36" />
В системе с английской локалью:
Если нужно перевести на другой язык — создаём соответствующий resx файл и переводим.
Насчёт производительности. Я тестировал на файле из 1200 строк, всё слияние словарей занимает 20 миллисекунд, т.е. никакой ощутимой задержки при загрузке это не вызовет. Единственная проблема, которая остаётся — текст не отображается во время разработки в дизайнере студии.
Файлы ресурсов в Visual Studio
При добавлении файла ресурсов в проект Visual Studio среда Visual Studio создает RESX-файл в каталоге проекта. В Visual Studio имеются редакторы ресурсов, позволяющие добавлять строки, изображения и двоичные объекты. Так как редакторы предназначены для обработки только статических данных, их нельзя использовать для хранения программных объектов; данные объектов необходимо записывать в RESX- или RESOURCES-файл программным способом. Дополнительные сведения см. в статье Работа с RESX-файлами программным способом и разделе Ресурсы в RESOURCES-файлах.
При добавлении локализованных ресурсов указывайте для них то же имя корневого файла, что и для основного файла ресурсов. Также в имени файла необходимо указать язык и региональные параметры. Например, если добавить файл ресурсов Resources. resx, можно также создать файлы ресурсов с именами Resources. en-US. resx и Resources.fr-FR. resx для хранения локализованных ресурсов для языков и региональных параметров "Английский (США)" и "французский (Франция)" соответственно. Следует также указать язык и региональные параметры по умолчанию для приложения. Это язык и региональные параметры, ресурсы которых используются в том случае, если для конкретного языка и региональных параметров никаких локализованных ресурсов обнаружить не удается.
чтобы указать язык и региональные параметры по умолчанию, в Обозреватель решений в Visual Studio:
- Откройте свойства проекта, щелкните проект правой кнопкой мыши и выберите Свойства (или нажмите клавишу Alt + Ввод при выборе проекта).
- Перейдите на вкладку Package (Пакет).
- В области Общие выберите соответствующий язык и региональные параметры из элемента управления нейтрального языка сборки .
- Сохраните изменения.
Во время компиляции среда Visual Studio сначала преобразует RESX-файлы проекта в двоичные файлы ресурсов (RESOURCES) и сохраняет их в подкаталоге каталога obj проекта. Visual Studio внедряет любые файлы ресурсов, не содержащие локализованные ресурсы, в основную сборку, созданную проектом. Если в каких-либо файлах ресурсов есть локализованные ресурсы, Visual Studio внедряет их в отдельные вспомогательные сборки для каждого локализованного языка и региональных параметров. Затем Visual Studio сохраняет каждую вспомогательную сборку в каталоге, имя которого соответствует локализованному языку и региональным параметрам. Например, локализованные ресурсы английского языка (США) сохраняются во вспомогательной сборке в подкаталоге en-US.
Здесь рассматривается работа с XML-файлами (RESX-файлами), содержащими ресурсы. Сведения о работе с двоичными файлами ресурсов, внедренными в сборки, см. в статье ResourceManager.
Существуют также способы работы с RESX-файлами, отличные от программных. При добавлении в проект Visual Studio файла ресурсов среда Visual Studio предоставляет интерфейс для создания и обслуживания RESX-файла и во время компиляции автоматически преобразует RESX-файл в RESOURCES-файл. Для непосредственной работы с RESX-файлом можно также использовать текстовый редактор. Однако следует соблюдать осторожность и избегать изменения содержащихся в файле двоичных данных: это может привести к его повреждению.
Читайте также: