Qu'est-ce que le format de fichier RESOURCES ?
Les fichiers avec l'extension .resources contiennent des données utilisées par les applications développées dans l'écosystème Microsoft .NET, le plus souvent au sein de l'environnement de développement Visual Studio. Les fichiers .resources stockent des objets - tels que des chaînes, des images, des icônes et des données binaires - utilisés par l'application au moment de l'exécution.
Il s'agit de fichiers binaires compilés générés automatiquement à partir de fichiers sources .resx (ressources XML) par ResGen.exe (le Resource File Generator) pendant le processus de build. Le format binaire est identifié par le « magic number » 0xBEEFCACE au début du fichier. Les développeurs modifient normalement les fichiers .resx dans le concepteur de Visual Studio ; le fichier .resources est un artefact de build intermédiaire qu'ils touchent rarement directement.
Le placement des ressources d'application dans des fichiers .resources permet des références directes à leur contenu dans le code source via la classe ResourceManager. Pour les applications déjà compilées, des éditeurs de ressources spécialisés peuvent remplacer les objets originaux - cette approche est le plus souvent utilisée pour créer des localisations linguistiques de programmes en substituant les textes originaux par leurs équivalents traduits, sans recompiler l'intégralité de l'application.
À l'exécution, ResourceManager charge le fichier .resources compilé, soit intégré dans l'assembly principal, soit sous forme d'assembly satellite (.resources.dll) pour une langue spécifique.
Une mise en garde importante pour le développement .NET moderne : les fichiers .resources contenant des objets complexes sérialisés avec BinaryFormatter sont obsolètes depuis .NET 5 et bloqués par défaut dans .NET 7+ en raison de risques de sécurité. Les ressources de type chaîne, image et types primitifs ne sont pas affectées. Le format fait partie de la plateforme .NET depuis .NET Framework 1.0 (2002) et reste inchangé jusqu'à .NET 9 (2024).
Sécurité et sûreté
RISQUE : LOWLes fichiers .resources eux-mêmes sont des fichiers de données, pas des exécutables. Cependant, ils peuvent contenir des objets sérialisés par BinaryFormatter (style hérité de .NET 1-4) qui, s'ils sont désérialisés, peuvent exécuter du code arbitraire - c'est pourquoi .NET 7+ désactive BinaryFormatter par défaut. L'ouverture d'un fichier .resources dans un éditeur de texte ou ResGen.exe est sûre ; seule la désérialisation de ressources de types complexes non fiables présente un risque.
Détails du format
en brefProgrammes qui ouvrent les fichiers RESOURCES
Détails techniques
spécifications approfondies| Type de fichier | Fichier de ressources .NET binaire compilé |
| Magic number | `0xBEEFCACE` (4 octets, little-endian, à l'offset 0) |
| Version d'en-tête | ResourceManager.HeaderVersionNumber = 1 (stable depuis .NET 1.0) |
| Ordre des octets | Little-endian (entiers d'en-tête) ; l'encodage des données de ressources varie selon le type |
| Encodage des chaînes | UTF-16 LE pour les noms de ressources ; UTF-8 pour les noms de types dans l'en-tête |
| Outil de build | `ResGen.exe` compile à partir de la source XML .resx ; s'exécute automatiquement pendant le build Visual Studio |
| Chargeur d'exécution | `System.Resources.ResourceManager` - intégré dans l'assembly ou satellite .resources.dll |
| Taille typique | 1 Ko - 10 Mo (plus volumineux avec des images ou de l'audio intégrés) |
| Types primitifs | 19 types primitifs (string, int, bool, etc.) utilisent un encodage binaire compact |
| Statut BinaryFormatter | Obsolète .NET 5+ ; désactivé par défaut dans .NET 7+ (risque d'exécution de code arbitraire) |
| Introduit | .NET Framework 1.0 (février 2002) |
| Support plateforme | Windows (.NET Framework), Linux et macOS (.NET Core / .NET 5+) |
| Remplacement UWP/WinAppSDK | .resw (même schéma XML que .resx) compilé en .pri (Package Resource Index) |
| Publié | .NET Framework 1.0 (2002) |
| Dernière version | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Spécification | learn.microsoft.com |
Conversions RESOURCES
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers RESOURCES.