Что такое формат файла RESX?
Файл .resx - это файл ресурсов .NET XML, стандартный формат для хранения локализуемых строк, изображений, значков и бинарных данных в проектах Microsoft .NET. Visual Studio автоматически генерирует и управляет файлами .resx как человекочитаемыми и удобными для систем контроля версий аналогами скомпилированных бинарных файлов .resources, встроенных в сборки.
Формат представляет собой обычный XML в кодировке UTF-8. Каждый файл начинается с элемента <root>, содержащего раздел <resheader>, который объявляет версию схемы и тип сериализатора, за которым следуют элементы <data> - каждый с атрибутом name и дочерним элементом <value>. Строковые значения отображаются как обычный текст; бинарные объекты (значки, растровые изображения, произвольные блоки данных) кодируются в Base64 внутри <value> с атрибутом mimetype, таким как application/x-microsoft.net.object.binary.base64.
Существуют две версии схемы: ResX v1 (Visual Studio .NET 2002-2003, .NET 1.x) и ResX v2 (.NET 2.0+, с 2005 года по настоящее время), которая остается актуальной. Активная версия объявляется внутри <resheader name="version">.
Во время сборки ResGen.exe или MSBuild компилирует .resx в бинарный файл .resources, который встраивается в выходную сборку. Локализация опирается на специфичные для языка вспомогательные файлы - например, Resources.fr.resx для французского языка. Для проектов Windows Runtime (UWP) формат .resx заменен на .resw; для локализации JavaScript используется .resjson. Тем не менее, .resx остается активным стандартом для проектов .NET Framework, WinForms и WPF вплоть до .NET 9 и выше.
Безопасность и защита
РИСК: LOWФайлы .resx представляют собой обычный XML и не могут выполняться сами по себе. Единственный косвенный риск: встроенные бинарные данные (Base64) теоретически могут нести вредоносную нагрузку, которая активируется после сборки и запуска приложения - но это требует от разработчика намеренного встраивания и выполнения такого кода. Открытие .resx в текстовом или XML-редакторе безопасно.
Детали формата
в двух словах- RESW (файл ресурсов Windows Runtime) - Структурно почти идентичный формат ресурсов XML, используемый приложениями UWP/WinRT; имеет ту же структуру тегов, но использует другой корень схемы.
Программы, открывающие файлы RESX
Технические подробности
глубокая спецификация| Кодировка | Текст XML в UTF-8 |
| Корневой элемент | `<root>`, содержащий дочерние элементы `<resheader>` (метаданные схемы) и `<data>` (запись ресурса) |
| Формат строкового ресурса | Обычный текст внутри дочернего элемента `<value>` тега `<data name="key-name">` |
| Кодирование бинарного ресурса | Кодировка Base64 внутри `<value>` с атрибутом `mimetype`, идентифицирующим тип объекта |
| Значения бинарного mimetype | `application/x-microsoft.net.object.binary.base64`, `application/x-microsoft.net.object.bytearray.base64` |
| Версии схемы | ResX v1 (.NET 1.x, 2002-2003) и ResX v2 (.NET 2.0+, 2005; текущая); версия объявляется в `<resheader name="version">` |
| Компиляция сборки | ResGen.exe или MSBuild компилирует `.resx` → бинарный файл `.resources`, встраиваемый в выходную сборку |
| Шаблон именования для локализации | Вспомогательные файлы для конкретных языков с именами `Resources.{culture-code}.resx` (например, `Resources.fr.resx` для французского) |
| Типичные типы ресурсов | Локализованные строки, растровые изображения, значки, курсоры, аудиоклипы, произвольные бинарные объекты |
| Типичный размер файла | От 1 КБ до нескольких МБ (масштабируется в зависимости от количества и размера встроенных бинарных ресурсов) |
| MIME-тип | text/microsoft-resx |
| Связанные инструменты сборки | Visual Studio resource designer, MSBuild, ResGen.exe, `dotnet build` |
| Форматы-преемники | `.resw` для UWP/Windows Runtime (Windows 8+); `.resjson` для локализации под JavaScript; `.resx` остается стандартом для WinForms/WPF |
| Выпущен | 2002 (.NET Framework 1.0 / Visual Studio .NET) |
| Последняя версия | ResX schema 2.0 (introduced .NET Framework 2.0, 2005; still current) |
| Спецификация | learn.microsoft.com |
Конвертации RESX
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах RESX.