Wat is het RESOURCES-bestandsformaat?
Bestanden met de extensie .resources bevatten gegevens die worden gebruikt door applicaties die zijn ontwikkeld in het Microsoft .NET-ecosysteem, meestal binnen de Visual Studio-ontwikkelomgeving. .resources-bestanden slaan objecten op - zoals strings, afbeeldingen, pictogrammen en binaire gegevens - die door de applicatie tijdens runtime worden gebruikt.
Dit zijn gecompileerde binaire bestanden die automatisch worden gegenereerd uit .resx (XML-resource) bronbestanden door ResGen.exe (de Resource File Generator) tijdens het bouwproces. Het binaire formaat wordt geïdentificeerd door het magische getal 0xBEEFCACE aan het begin van het bestand. Ontwikkelaars bewerken normaal gesproken .resx-bestanden in de Visual Studio-ontwerper; het .resources-bestand is een tussenproduct van de build dat ze zelden rechtstreeks aanraken.
Door applicatieresources in .resources-bestanden te plaatsen, kunnen directe verwijzingen naar hun inhoud in de broncode worden gemaakt via de klasse ResourceManager. Voor reeds gecompileerde applicaties kunnen gespecialiseerde resource-editors originele objecten vervangen - deze aanpak wordt het meest gebruikt om lokalisaties van programmatalen te maken door originele teksten te vervangen door hun vertaalde equivalenten, zonder de hele applicatie opnieuw te compileren.
Tijdens runtime laadt ResourceManager het gecompileerde .resources-bestand, ofwel ingebed in de hoofdassembly of als een satelliet-assembly (.resources.dll) voor een specifieke landinstelling.
Een belangrijk voorbehoud voor moderne .NET-ontwikkeling: .resources-bestanden die complexe objecten bevatten die zijn geserialiseerd met BinaryFormatter, zijn verouderd vanaf .NET 5 en standaard geblokkeerd in .NET 7+ vanwege beveiligingsrisico's. Resources van het type string, afbeelding en primitieve typen worden niet beïnvloed. Het formaat maakt deel uit van het .NET-platform sinds .NET Framework 1.0 (2002) en blijft ongewijzigd tot en met .NET 9 (2024).
Beveiliging & veiligheid
RISICO: LOW.resources-bestanden zelf zijn gegevensbestanden, niet uitvoerbaar. Ze kunnen echter met BinaryFormatter geserialiseerde objecten bevatten (legacy .NET 1-4 stijl) die, indien gedeserialiseerd, willekeurige code kunnen uitvoeren - dit is de reden waarom .NET 7+ BinaryFormatter standaard uitschakelt. Het openen van een .resources-bestand in een teksteditor of ResGen.exe is veilig; alleen het deserialiseren van niet-vertrouwde resources van complexe typen vormt een risico.
Formaatdetails
in een notendopProgramma's die RESOURCES-bestanden openen
Technische details
diepe specificaties| Bestandstype | Gecompileerd binair .NET-resourcebestand |
| Magisch getal | `0xBEEFCACE` (4 bytes, little-endian, op offset 0) |
| Header-versie | ResourceManager.HeaderVersionNumber = 1 (stabiel sinds .NET 1.0) |
| Byte-volgorde | Little-endian (header integers); codering van resourcegegevens varieert per type |
| String-codering | UTF-16 LE voor resourcenamen; UTF-8 voor typenamen in header |
| Bouwtool | `ResGen.exe` compileert vanuit .resx XML-bron; wordt automatisch uitgevoerd tijdens Visual Studio-build |
| Runtime-lader | `System.Resources.ResourceManager` - ingebed in assembly of satelliet .resources.dll |
| Typische grootte | 1 KB - 10 MB (groter met ingebedde afbeeldingen of audio) |
| Primitieve typen | 19 primitieve typen (string, int, bool, enz.) gebruiken compacte binaire codering |
| BinaryFormatter-status | Verouderd in .NET 5+; standaard uitgeschakeld in .NET 7+ (risico op uitvoering van willekeurige code) |
| Geïntroduceerd | .NET Framework 1.0 (februari 2002) |
| Platformondersteuning | Windows (.NET Framework), Linux en macOS (.NET Core / .NET 5+) |
| UWP/WinAppSDK-vervanging | .resw (hetzelfde XML-schema als .resx) gecompileerd naar .pri (Package Resource Index) |
| Uitgebracht | .NET Framework 1.0 (2002) |
| Laatste versie | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Specificatie | learn.microsoft.com |
RESOURCES conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over RESOURCES-bestanden.