Hvad er RESX-filformatet?
En .resx-fil er en .NET XML-ressourcefil - standardformatet til lagring af lokaliserbare strenge, billeder, ikoner og binære data i Microsoft .NET-projekter. Visual Studio genererer og administrerer automatisk .resx-filer som det menneskeligt læsbare og versionsstyringsvenlige modstykke til de kompilerede binære .resources-filer, der er indlejret i assemblies.
Formatet er almindelig UTF-8 XML. Hver fil starter med et <root>-element, der indeholder en <resheader>-sektion, som erklærer skemaversion og serialiseringstype, efterfulgt af <data>-elementer - hver med en name-attribut og et <value>-underelement. Strengværdier vises som almindelig tekst; binære objekter (ikoner, bitmaps, vilkårlige blobs) er Base64-kodede i <value> med en mimetype-attribut såsom application/x-microsoft.net.object.binary.base64.
Der findes to skemaversioner: ResX v1 (Visual Studio .NET 2002-2003, .NET 1.x) og ResX v2 (.NET 2.0+, 2005 og frem), som fortsat er den nuværende. Den aktive version erklæres inde i <resheader name="version">.
Ved kompilering kompilerer ResGen.exe eller MSBuild .resx til en binær .resources-fil, der indlejres i output-assembly'en. Lokalisering afhænger af kulturspecifikke satellitfiler - for eksempel Resources.fr.resx til fransk. For Windows Runtime (UWP)-projekter er .resx erstattet af .resw; til JavaScript-lokalisering træder .resjson i stedet. Dog forbliver .resx den aktive standard for .NET Framework, WinForms og WPF-projekter gennem .NET 9 og fremefter.
Sikkerhed og tryghed
RISIKO: LOW.resx-filer er almindelig XML og kan ikke eksekveres alene. Den eneste indirekte risiko: indlejrede binære data (Base64) kunne teoretisk set indeholde en ondsindet payload, der aktiveres efter assembly'en er bygget og kørt - men dette kræver, at udvikleren bevidst indlejrer og eksekverer det. Det er sikkert at åbne en .resx i en tekst- eller XML-editor.
Formatdetaljer
kort fortalt- RESW (Windows Runtime ressourcefil) - Strukturelt næsten identisk XML-ressourceformat brugt af UWP/WinRT-apps; deler den samme tag-struktur, men bruger en anden skema-rod.
Programmer der åbner RESX-filer
Tekniske detaljer
dyb specifikation| Kodning | UTF-8 XML-tekst |
| Rodelement | `<root>` indeholdende `<resheader>` (skema-metadata) og `<data>` (ressourceindgang) underelementer |
| Format for strengressourcer | Almindelig tekst i `<value>`-underelementet af `<data name="key-name">` |
| Kodning af binære ressourcer | Base64-kodet inde i `<value>` med en `mimetype`-attribut, der identificerer objekttypen |
| Binære mimetype-værdier | `application/x-microsoft.net.object.binary.base64`, `application/x-microsoft.net.object.bytearray.base64` |
| Skemaversioner | ResX v1 (.NET 1.x, 2002-2003) og ResX v2 (.NET 2.0+, 2005; nuværende); version erklæret i `<resheader name="version">` |
| Build-kompilering | ResGen.exe eller MSBuild kompilerer `.resx` → binær `.resources`-fil indlejret i output-assembly'en |
| Typiske ressourcetyper | Lokaliserede strenge, bitmaps, ikoner, markører, lydklip, vilkårlige binære blobs |
| Typisk filstørrelse | 1 KB - adskillige MB (skalerer med antallet og størrelsen af indlejrede binære ressourcer) |
| MIME-type | text/microsoft-resx |
| Tilknyttede build-værktøjer | Visual Studio ressource-designer, MSBuild, ResGen.exe, `dotnet build` |
| Efterfølgende formater | `.resw` til UWP/Windows Runtime (Windows 8+); `.resjson` til JavaScript-målrettet lokalisering; `.resx` forbliver standard for WinForms/WPF |
| Udgivet | 2002 (.NET Framework 1.0 / Visual Studio .NET) |
| Seneste version | ResX schema 2.0 (introduced .NET Framework 2.0, 2005; still current) |
| Specifikation | learn.microsoft.com |
RESX-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om RESX-filer.