What is the RESX file format?
A .resx file is a .NET XML Resource File - the standard format for storing localizable strings, images, icons, and binary data in Microsoft .NET projects. Visual Studio generates and manages .resx files automatically as the human-readable, source-control-friendly counterpart to the compiled binary .resources files embedded in assemblies.
The format is plain UTF-8 XML. Every file opens with a <root> element containing a <resheader> section that declares the schema version and serializer type, followed by <data> elements - each with a name attribute and a <value> child. String values appear as plain text; binary objects (icons, bitmaps, arbitrary blobs) are Base64-encoded within <value> with a mimetype attribute such as application/x-microsoft.net.object.binary.base64.
Two schema versions exist: ResX v1 (Visual Studio .NET 2002-2003, .NET 1.x) and ResX v2 (.NET 2.0+, 2005 onward), which remains current. The active version is declared inside <resheader name="version">.
At build time, ResGen.exe or MSBuild compiles .resx into a binary .resources file that is embedded in the output assembly. Localization relies on culture-specific satellite files - for example, Resources.fr.resx for French. For Windows Runtime (UWP) projects, .resx is superseded by .resw; for JavaScript localization, .resjson takes its place. However, .resx remains the active standard for .NET Framework, WinForms, and WPF projects through .NET 9 and beyond.
Security & safety
RISK: LOW.resx files are plain XML and cannot execute on their own. The only indirect risk: embedded binary data (Base64) could theoretically carry a malicious payload that is activated after the assembly is built and run - but this requires the developer to intentionally embed and execute it. Opening a .resx in a text/XML editor is safe.
Format details
in a nutshell- RESW (Windows Runtime resource file) - Structurally near-identical XML resource format used by UWP/WinRT apps; shares the same tag structure but uses a different schema root.
Programs that open RESX files
Technical details
deep spec| Encoding | UTF-8 XML text |
| Root element | `<root>` containing `<resheader>` (schema metadata) and `<data>` (resource entry) children |
| String resource format | Plain text within `<value>` child of `<data name="key-name">` |
| Binary resource encoding | Base64-encoded inside `<value>` with a `mimetype` attribute identifying the object type |
| Binary mimetype values | `application/x-microsoft.net.object.binary.base64`, `application/x-microsoft.net.object.bytearray.base64` |
| Schema versions | ResX v1 (.NET 1.x, 2002-2003) and ResX v2 (.NET 2.0+, 2005; current); version declared in `<resheader name="version">` |
| Build compilation | ResGen.exe or MSBuild compiles `.resx` → binary `.resources` file embedded in the output assembly |
| Localization naming pattern | Culture-specific satellite files named `Resources.{culture-code}.resx` (e.g. `Resources.fr.resx` for French) |
| Typical resource types | Localized strings, bitmaps, icons, cursors, audio clips, arbitrary binary blobs |
| Typical file size | 1 KB - several MB (scales with number and size of embedded binary resources) |
| MIME type | text/microsoft-resx |
| Associated build tools | Visual Studio resource designer, MSBuild, ResGen.exe, `dotnet build` |
| Successor formats | `.resw` for UWP/Windows Runtime (Windows 8+); `.resjson` for JavaScript-targeted localization; `.resx` remains standard for WinForms/WPF |
| Released | 2002 (.NET Framework 1.0 / Visual Studio .NET) |
| Latest version | ResX schema 2.0 (introduced .NET Framework 2.0, 2005; still current) |
| Specification | learn.microsoft.com |
RESX conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about RESX files.