Co to jest format pliku RESX?
Plik .resx to plik zasobów .NET XML - standardowy format do przechowywania lokalizowalnych ciągów znaków, obrazów, ikon i danych binarnych w projektach Microsoft .NET. Visual Studio automatycznie generuje i zarządza plikami .resx jako czytelnym dla człowieka, przyjaznym dla systemów kontroli wersji odpowiednikiem skompilowanych binarnych plików .resources osadzonych w zestawach (assemblies).
Format to zwykły XML w kodowaniu UTF-8. Każdy plik zaczyna się od elementu <root> zawierającego sekcję <resheader>, która deklaruje wersję schematu i typ serializatora, a następnie elementy <data> - każdy z atrybutem name i elementem podrzędnym <value>. Wartości tekstowe pojawiają się jako zwykły tekst; obiekty binarne (ikony, mapy bitowe, dowolne bloby) są kodowane w Base64 wewnątrz <value> z atrybutem mimetype, takim jak application/x-microsoft.net.object.binary.base64.
Istnieją dwie wersje schematu: ResX v1 (Visual Studio .NET 2002-2003, .NET 1.x) oraz ResX v2 (.NET 2.0+, od 2005 roku), która pozostaje aktualna. Aktywna wersja jest zadeklarowana wewnątrz <resheader name="version">.
W czasie kompilacji ResGen.exe lub MSBuild kompiluje .resx do binarnego pliku .resources, który jest osadzany w wyjściowym zestawie. Lokalizacja opiera się na plikach satelitarnych specyficznych dla danej kultury - na przykład Resources.fr.resx dla języka francuskiego. W przypadku projektów Windows Runtime (UWP), .resx został zastąpiony przez .resw; w przypadku lokalizacji JavaScript, jego miejsce zajmuje .resjson. Jednak .resx pozostaje aktywnym standardem dla projektów .NET Framework, WinForms i WPF w .NET 9 i nowszych.
Bezpieczeństwo
RYZYKO: LOWPliki .resx to zwykły XML i nie mogą same się wykonywać. Jedyne pośrednie ryzyko: osadzone dane binarne (Base64) mogłyby teoretycznie przenosić złośliwy ładunek, który zostanie aktywowany po zbudowaniu i uruchomieniu zestawu - wymaga to jednak od programisty celowego osadzenia i wykonania go. Otwieranie pliku .resx w edytorze tekstu/XML jest bezpieczne.
Szczegóły formatu
w pigułce- RESW (plik zasobów Windows Runtime) - Strukturalnie niemal identyczny format zasobów XML używany przez aplikacje UWP/WinRT; współdzieli tę samą strukturę tagów, ale używa innego korzenia schematu.
Programy otwierające pliki RESX
Szczegóły techniczne
specyfikacja| Kodowanie | Tekst XML UTF-8 |
| Element główny | `<root>` zawierający elementy podrzędne `<resheader>` (metadane schematu) i `<data>` (wpis zasobu) |
| Format zasobów tekstowych | Zwykły tekst wewnątrz elementu podrzędnego `<value>` w `<data name="key-name">` |
| Kodowanie zasobów binarnych | Zakodowane w Base64 wewnątrz `<value>` z atrybutem `mimetype` identyfikującym typ obiektu |
| Wartości mimetype dla danych binarnych | `application/x-microsoft.net.object.binary.base64`, `application/x-microsoft.net.object.bytearray.base64` |
| Wersje schematu | ResX v1 (.NET 1.x, 2002-2003) i ResX v2 (.NET 2.0+, 2005; obecna); wersja zadeklarowana w `<resheader name="version">` |
| Kompilacja | ResGen.exe lub MSBuild kompiluje `.resx` → binarny plik `.resources` osadzony w zestawie wyjściowym |
| Wzorzec nazewnictwa lokalizacji | Pliki satelitarne specyficzne dla kultury o nazwie `Resources.{kod-kultury}.resx` (np. `Resources.pl.resx` dla języka polskiego) |
| Typowe typy zasobów | Zlokalizowane ciągi znaków, mapy bitowe, ikony, kursory, klipy audio, dowolne bloby binarne |
| Typowy rozmiar pliku | 1 KB - kilka MB (skaluje się wraz z liczbą i rozmiarem osadzonych zasobów binarnych) |
| Typ MIME | text/microsoft-resx |
| Powiązane narzędzia budowania | Projektant zasobów Visual Studio, MSBuild, ResGen.exe, `dotnet build` |
| Formaty następcze | `.resw` dla UWP/Windows Runtime (Windows 8+); `.resjson` dla lokalizacji ukierunkowanej na JavaScript; `.resx` pozostaje standardem dla WinForms/WPF |
| Wydano | 2002 (.NET Framework 1.0 / Visual Studio .NET) |
| Najnowsza wersja | ResX schema 2.0 (introduced .NET Framework 2.0, 2005; still current) |
| Specyfikacja | learn.microsoft.com |
Konwersje RESX
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki RESX.