Hva er RESOURCES-filformatet?
Filer med filendelsen .resources inneholder data som brukes av applikasjoner utviklet i Microsoft .NET-økosystemet, oftest innenfor utviklingsmiljøet Visual Studio. .resources-filer lagrer objekter - som strenger, bilder, ikoner og binære data - som brukes av applikasjonen under kjøring.
Dette er kompilerte binærfiler generert automatisk fra .resx (XML-ressurs) kildefiler av ResGen.exe (Resource File Generator) under byggeprosessen. Det binære formatet identifiseres av det magiske tallet 0xBEEFCACE i starten av filen. Utviklere redigerer normalt .resx-filer i Visual Studio-designeren; .resources-filen er en mellomliggende artefakt de sjelden rører direkte.
Ved å plassere applikasjonsressurser i .resources-filer kan man referere direkte til innholdet i kildekoden via klassen ResourceManager. For allerede kompilerte applikasjoner kan spesialiserte ressursredigerere erstatte originale objekter - denne tilnærmingen brukes oftest for å lage lokaliseringer av programvare ved å erstatte originale tekster med oversatte ekvivalenter, uten å rekompilere hele applikasjonen.
Ved kjøring laster ResourceManager den kompilerte .resources-filen enten innebygd i hoved-assemblyen eller som en satellitt-assembly (.resources.dll) for en spesifikk geografisk plassering.
Et viktig forbehold for moderne .NET-utvikling: .resources-filer som inneholder komplekse objekter serialisert med BinaryFormatter er foreldet fra og med .NET 5 og blokkert som standard i .NET 7+ på grunn av sikkerhetsrisikoer. Ressurser av typen strenger, bilder og primitive typer er upåvirket. Formatet har vært en del av .NET-plattformen siden .NET Framework 1.0 (2002) og forblir uendret gjennom .NET 9 (2024).
Sikkerhet og trygghet
RISIKO: LOW.resources-filer i seg selv er datafiler, ikke kjørbare. Imidlertid kan de inneholde BinaryFormatter-serialiserte objekter (legacy .NET 1-4 stil) som, hvis de deserialiseres, kan kjøre vilkårlig kode - dette er grunnen til at .NET 7+ deaktiverer BinaryFormatter som standard. Å åpne en .resources-fil i et tekstredigeringsprogram eller ResGen.exe er trygt; kun deserialisering av upålitelige ressurser av komplekse typer utgjør en risiko.
Formatdetaljer
i et nøtteskallProgrammer som åpner RESOURCES-filer
Tekniske detaljer
dyp spesifikasjon| Filtype | Kompilert binær .NET-ressursfil |
| Magisk tall | `0xBEEFCACE` (4 byte, little-endian, ved offset 0) |
| Header-versjon | ResourceManager.HeaderVersionNumber = 1 (stabil siden .NET 1.0) |
| Byterekkefølge | Little-endian (header-heltall); koding av ressursdata varierer etter type |
| Strengkoding | UTF-16 LE for ressursnavn; UTF-8 for typenavn i header |
| Byggeverktøy | `ResGen.exe` kompilerer fra .resx XML-kilde; kjører automatisk under Visual Studio-bygging |
| Runtime-laster | `System.Resources.ResourceManager` - innebygd i assembly eller satellitt .resources.dll |
| Typisk størrelse | 1 KB - 10 MB (større med innebygde bilder eller lyd) |
| Primitive typer | 19 primitive typer (string, int, bool, osv.) bruker kompakt binær koding |
| BinaryFormatter-status | Foreldet i .NET 5+; deaktivert som standard i .NET 7+ (risiko for vilkårlig kjøring av kode) |
| Introdusert | .NET Framework 1.0 (februar 2002) |
| Plattformstøtte | Windows (.NET Framework), Linux og macOS (.NET Core / .NET 5+) |
| UWP/WinAppSDK-erstatning | .resw (samme XML-skjema som .resx) kompilert til .pri (Package Resource Index) |
| Utgitt | .NET Framework 1.0 (2002) |
| Siste versjon | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Spesifikasjon | learn.microsoft.com |
RESOURCES-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om RESOURCES-filer.