Vad är filformatet RESOURCES?
Filer med filtillägget .resources innehåller data som används av applikationer utvecklade i Microsoft .NET-ekosystemet, oftast inom utvecklingsmiljön Visual Studio. .resources-filer lagrar objekt - såsom strängar, bilder, ikoner och binär data - som används av applikationen vid körning.
Dessa är kompilerade binära filer som genereras automatiskt från .resx (XML-resurs) källfiler av ResGen.exe (Resource File Generator) under byggprocessen. Det binära formatet identifieras av det magiska numret 0xBEEFCACE i början av filen. Utvecklare redigerar normalt .resx-filer i Visual Studio-designern; .resources-filen är en mellanliggande byggartefakt som de sällan rör direkt.
Genom att placera applikationsresurser i .resources-filer möjliggörs direkta referenser till deras innehåll i källkoden via klassen ResourceManager. För redan kompilerade applikationer kan specialiserade resursredigerare ersätta originalobjekt - detta tillvägagångssätt används vanligast för att skapa lokaliseringar av program genom att ersätta originaltexter med deras översatta motsvarigheter, utan att behöva kompilera om hela applikationen.
Vid körning laddar ResourceManager den kompilerade .resources-filen antingen inbäddad i huvud-assemblyn eller som en satellit-assembly (.resources.dll) för ett specifikt språk.
En viktig varning för modern .NET-utveckling: .resources-filer som innehåller komplexa objekt serialiserade med BinaryFormatter är föråldrade från och med .NET 5 och blockerade som standard i .NET 7+ på grund av säkerhetsrisker. Resurser av typen strängar, bilder och primitiva typer påverkas inte. Formatet har varit en del av .NET-plattformen sedan .NET Framework 1.0 (2002) och förblir oförändrat fram till .NET 9 (2024).
Säkerhet & trygghet
RISK: LOW.resources-filer i sig är datafiler, inte körbara filer. De kan dock innehålla BinaryFormatter-serialiserade objekt (legacy .NET 1-4 stil) som, om de deserialiseras, kan exekvera godtycklig kod - detta är anledningen till att .NET 7+ inaktiverar BinaryFormatter som standard. Att öppna en .resources-fil i en textredigerare eller ResGen.exe är säkert; endast deserialisering av resurser av komplex typ från okända källor utgör en risk.
Formatdetaljer
i ett nötskalProgram som öppnar RESOURCES-filer
Tekniska detaljer
djup specifikation| Filtyp | Kompilerad binär .NET-resursfil |
| Magiskt nummer | `0xBEEFCACE` (4 byte, little-endian, vid offset 0) |
| Header-version | ResourceManager.HeaderVersionNumber = 1 (stabil sedan .NET 1.0) |
| Byte-ordning | Little-endian (header-heltal); kodning av resursdata varierar beroende på typ |
| Strängkodning | UTF-16 LE för resursnamn; UTF-8 för typnamn i headern |
| Byggverktyg | `ResGen.exe` kompilerar från .resx XML-källa; körs automatiskt under Visual Studio-bygge |
| Runtime-laddare | `System.Resources.ResourceManager` - inbäddad i assembly eller satellit .resources.dll |
| Typisk storlek | 1 KB - 10 MB (större med inbäddade bilder eller ljud) |
| Primitiva typer | 19 primitiva typer (string, int, bool, etc.) använder kompakt binär kodning |
| BinaryFormatter-status | Föråldrad i .NET 5+; inaktiverad som standard i .NET 7+ (risk för godtycklig kodexekvering) |
| Introducerad | .NET Framework 1.0 (februari 2002) |
| Plattformsstöd | Windows (.NET Framework), Linux och macOS (.NET Core / .NET 5+) |
| Ersättare i UWP/WinAppSDK | .resw (samma XML-schema som .resx) kompilerad till .pri (Package Resource Index) |
| Släppt | .NET Framework 1.0 (2002) |
| Senaste version | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Specifikation | learn.microsoft.com |
RESOURCES-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om RESOURCES-filer.