Was ist das RESOURCES-Dateiformat?
Dateien mit der Erweiterung .resources enthalten Daten, die von Anwendungen im Microsoft .NET-Ökosystem verwendet werden, meist innerhalb der Visual Studio-Entwicklungsumgebung. .resources-Dateien speichern Objekte - wie Zeichenfolgen, Bilder, Icons und Binärdaten -, die von der Anwendung zur Laufzeit genutzt werden.
Es handelt sich um kompilierte Binärdateien, die während des Build-Prozesses automatisch aus .resx-Quelldateien (XML-Ressourcen) durch ResGen.exe (den Resource File Generator) generiert werden. Das Binärformat wird durch die Magic Number 0xBEEFCACE am Anfang der Datei identifiziert. Entwickler bearbeiten normalerweise .resx-Dateien im Visual Studio-Designer; die .resources-Datei ist ein Zwischenprodukt des Builds, das sie selten direkt berühren.
Das Platzieren von Anwendungsressourcen in .resources-Dateien ermöglicht den direkten Verweis auf deren Inhalte im Quellcode über die ResourceManager-Klasse. Für bereits kompilierte Anwendungen können spezialisierte Ressourcen-Editoren Originalobjekte ersetzen - dieser Ansatz wird am häufigsten verwendet, um Lokalisierungen von Programmsprachen zu erstellen, indem Originaltexte durch ihre übersetzten Entsprechungen ersetzt werden, ohne die gesamte Anwendung neu zu kompilieren.
Zur Laufzeit lädt der ResourceManager die kompilierte .resources-Datei entweder eingebettet in die Haupt-Assembly oder als Satelliten-Assembly (.resources.dll) für ein bestimmtes Gebietsschema.
Ein wichtiger Hinweis für die moderne .NET-Entwicklung: .resources-Dateien, die komplexe Objekte enthalten, die mit dem BinaryFormatter serialisiert wurden, sind seit .NET 5 veraltet und in .NET 7+ aufgrund von Sicherheitsrisiken standardmäßig blockiert. Ressourcen vom Typ String, Bild und primitive Typen sind davon nicht betroffen. Das Format ist seit .NET Framework 1.0 (2002) Teil der .NET-Plattform und bleibt bis .NET 9 (2024) unverändert.
Sicherheit
RISIKO: LOW.resources-Dateien selbst sind Datendateien, nicht ausführbar. Sie können jedoch mit BinaryFormatter serialisierte Objekte enthalten (Legacy .NET 1-4 Stil), die beim Deserialisieren beliebigen Code ausführen können - weshalb .NET 7+ den BinaryFormatter standardmäßig deaktiviert. Das Öffnen einer .resources-Datei in einem Texteditor oder ResGen.exe ist sicher; nur das Deserialisieren nicht vertrauenswürdiger Ressourcen komplexer Typen stellt ein Risiko dar.
Formatdetails
kurz gefasstProgramme zum Öffnen von RESOURCES-Dateien
Technische Details
technische Spezifikation| Dateityp | Kompilierte binäre .NET-Ressourcendatei |
| Magic Number | `0xBEEFCACE` (4 Bytes, Little-Endian, bei Offset 0) |
| Header-Version | ResourceManager.HeaderVersionNumber = 1 (stabil seit .NET 1.0) |
| Byte-Reihenfolge | Little-Endian (Header-Integer); Kodierung der Ressourcendaten variiert je nach Typ |
| Zeichenkodierung | UTF-16 LE für Ressourcennamen; UTF-8 für Typnamen im Header |
| Build-Tool | `ResGen.exe` kompiliert aus .resx-XML-Quelle; läuft automatisch während des Visual Studio-Builds |
| Laufzeit-Loader | `System.Resources.ResourceManager` - eingebettet in Assembly oder Satelliten- .resources.dll |
| Typische Größe | 1 KB - 10 MB (größer bei eingebetteten Bildern oder Audio) |
| Primitive Typen | 19 primitive Typen (String, Int, Bool, etc.) verwenden kompakte binäre Kodierung |
| BinaryFormatter-Status | Veraltet ab .NET 5+; standardmäßig deaktiviert in .NET 7+ (Risiko der Ausführung von beliebigem Code) |
| Eingeführt | .NET Framework 1.0 (Februar 2002) |
| Plattformunterstützung | Windows (.NET Framework), Linux und macOS (.NET Core / .NET 5+) |
| UWP/WinAppSDK-Ersatz | .resw (gleiches XML-Schema wie .resx) kompiliert zu .pri (Package Resource Index) |
| Veröffentlicht | .NET Framework 1.0 (2002) |
| Neueste Version | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Spezifikation | learn.microsoft.com |
RESOURCES-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu RESOURCES-Dateien.