Vad är filformatet RESX?
En .resx-fil är en .NET XML-resursfil - standardformatet för att lagra lokaliserbara strängar, bilder, ikoner och binärdata i Microsoft .NET-projekt. Visual Studio genererar och hanterar .resx-filer automatiskt som den mänskligt läsbara, versionshanteringsvänliga motsvarigheten till de kompilerade binära .resources-filerna som bäddas in i assemblies.
Formatet är vanlig UTF-8 XML. Varje fil inleds med ett <root>-element som innehåller en <resheader>-sektion som deklarerar schemaversion och serialiseringstyp, följt av <data>-element - vart och ett med ett name-attribut och ett <value>-underelement. Strängvärden visas som vanlig text; binära objekt (ikoner, bitmappar, godtyckliga blobbar) är Base64-kodade inom <value> med ett mimetype-attribut såsom application/x-microsoft.net.object.binary.base64.
Två schemaversioner existerar: ResX v1 (Visual Studio .NET 2002-2003, .NET 1.x) och ResX v2 (.NET 2.0+, 2005 och framåt), vilken förblir den aktuella. Den aktiva versionen deklareras inuti <resheader name="version">.
Vid kompilering kompilerar ResGen.exe eller MSBuild .resx till en binär .resources-fil som bäddas in i utdata-assemblyn. Lokalisering bygger på kulturspecifika satellitfiler - till exempel Resources.fr.resx för franska. För Windows Runtime (UWP)-projekt har .resx ersatts av .resw; för JavaScript-lokalisering tar .resjson dess plats. Dock förblir .resx den aktiva standarden för .NET Framework, WinForms och WPF-projekt genom .NET 9 och framåt.
Säkerhet & trygghet
RISK: LOW.resx-filer är vanlig XML och kan inte köras på egen hand. Den enda indirekta risken: inbäddad binärdata (Base64) skulle teoretiskt kunna bära på en skadlig kod som aktiveras efter att assemblyn har byggts och körts - men detta kräver att utvecklaren avsiktligt bäddar in och kör den. Att öppna en .resx i en text/XML-redigerare är säkert.
Formatdetaljer
i ett nötskal- RESW (Windows Runtime-resursfil) - Strukturellt nästan identiskt XML-resursformat som används av UWP/WinRT-appar; delar samma taggstruktur men använder en annan schemarot.
Program som öppnar RESX-filer
Tekniska detaljer
djup specifikation| Kodning | UTF-8 XML-text |
| Rotelement | `<root>` som innehåller underelementen `<resheader>` (schema-metadata) och `<data>` (resurspost) |
| Format för strängresurser | Vanlig text inuti `<value>`-underelement till `<data name="key-name">` |
| Kodning av binära resurser | Base64-kodad inuti `<value>` med ett `mimetype`-attribut som identifierar objekttypen |
| Värden för binär mimetype | `application/x-microsoft.net.object.binary.base64`, `application/x-microsoft.net.object.bytearray.base64` |
| Schemaversioner | ResX v1 (.NET 1.x, 2002-2003) och ResX v2 (.NET 2.0+, 2005; aktuell); version deklareras i `<resheader name="version">` |
| Byggkompilering | ResGen.exe eller MSBuild kompilerar `.resx` → binär `.resources`-fil inbäddad i utdata-assemblyn |
| Namngivningsmönster för lokalisering | Kulturspecifika satellitfiler namngivna `Resources.{culture-code}.resx` (t.ex. `Resources.fr.resx` för franska) |
| Typiska resurstyper | Lokaliserade strängar, bitmappar, ikoner, pekare, ljudklipp, godtyckliga binära blobbar |
| Typisk filstorlek | 1 KB - flera MB (skalar med antal och storlek på inbäddade binära resurser) |
| MIME-typ | text/microsoft-resx |
| Associerade byggverktyg | Visual Studio resource designer, MSBuild, ResGen.exe, `dotnet build` |
| Efterföljande format | `.resw` för UWP/Windows Runtime (Windows 8+); `.resjson` för JavaScript-inriktad lokalisering; `.resx` förblir standard för WinForms/WPF |
| Släppt | 2002 (.NET Framework 1.0 / Visual Studio .NET) |
| Senaste version | ResX schema 2.0 (introduced .NET Framework 2.0, 2005; still current) |
| Specifikation | learn.microsoft.com |
RESX-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om RESX-filer.