Che cos'è il formato di file RESOURCES?
I file con estensione .resources contengono dati utilizzati dalle applicazioni sviluppate nell'ecosistema Microsoft .NET, il più delle volte all'interno dell'ambiente di sviluppo Visual Studio. I file .resources memorizzano oggetti - come stringhe, immagini, icone e dati binari - utilizzati dall'applicazione durante l'esecuzione.
Si tratta di file binari compilati generati automaticamente dai file sorgente .resx (risorse XML) tramite ResGen.exe (il Resource File Generator) durante il processo di compilazione. Il formato binario è identificato dal magic number 0xBEEFCACE all'inizio del file. Gli sviluppatori normalmente modificano i file .resx nel designer di Visual Studio; il file .resources è un artefatto di compilazione intermedio che raramente viene toccato direttamente.
L'inserimento delle risorse dell'applicazione nei file .resources consente riferimenti diretti ai loro contenuti nel codice sorgente tramite la classe ResourceManager. Per le applicazioni già compilate, editor di risorse specializzati possono sostituire gli oggetti originali - questo approccio è comunemente usato per creare localizzazioni linguistiche dei programmi sostituendo i testi originali con i loro equivalenti tradotti, senza ricompilare l'intera applicazione.
In fase di esecuzione, ResourceManager carica il file .resources compilato, sia esso incorporato nell'assembly principale o come assembly satellite (.resources.dll) per una specifica lingua.
Un avvertimento importante per lo sviluppo .NET moderno: i file .resources che contengono oggetti complessi serializzati con BinaryFormatter sono deprecati a partire da .NET 5 e bloccati per impostazione predefinita in .NET 7+ a causa di rischi di sicurezza. Le risorse di tipo stringa, immagine e tipi primitivi non sono interessate. Il formato fa parte della piattaforma .NET fin da .NET Framework 1.0 (2002) e rimane invariato fino a .NET 9 (2024).
Sicurezza e incolumità
RISCHIO: LOWI file .resources stessi sono file di dati, non eseguibili. Tuttavia, possono contenere oggetti serializzati con BinaryFormatter (stile legacy .NET 1-4) che, se deserializzati, possono eseguire codice arbitrario - questo è il motivo per cui .NET 7+ disabilita BinaryFormatter per impostazione predefinita. Aprire un file .resources in un editor di testo o con ResGen.exe è sicuro; solo la deserializzazione di risorse di tipo complesso non attendibili comporta un rischio.
Dettagli del formato
in sintesiProgrammi che aprono file RESOURCES
Dettagli tecnici
specifiche approfondite| Tipo di file | File di risorse .NET binario compilato |
| Magic number | `0xBEEFCACE` (4 byte, little-endian, all'offset 0) |
| Versione header | ResourceManager.HeaderVersionNumber = 1 (stabile da .NET 1.0) |
| Ordine dei byte | Little-endian (interi dell'header); la codifica dei dati delle risorse varia in base al tipo |
| Codifica stringhe | UTF-16 LE per i nomi delle risorse; UTF-8 per i nomi dei tipi nell'header |
| Strumento di compilazione | `ResGen.exe` compila dalla sorgente XML .resx; viene eseguito automaticamente durante la compilazione di Visual Studio |
| Loader runtime | `System.Resources.ResourceManager` - incorporato nell'assembly o satellite .resources.dll |
| Dimensione tipica | 1 KB - 10 MB (più grande con immagini o audio incorporati) |
| Tipi primitivi | 19 tipi primitivi (string, int, bool, ecc.) utilizzano una codifica binaria compatta |
| Stato BinaryFormatter | Deprecato in .NET 5+; disabilitato per impostazione predefinita in .NET 7+ (rischio di esecuzione di codice arbitrario) |
| Introdotto | .NET Framework 1.0 (febbraio 2002) |
| Supporto piattaforma | Windows (.NET Framework), Linux e macOS (.NET Core / .NET 5+) |
| Sostituto UWP/WinAppSDK | .resw (stesso schema XML di .resx) compilato in .pri (Package Resource Index) |
| Rilasciato | .NET Framework 1.0 (2002) |
| Ultima versione | .NET 9 (2024) - format unchanged since inception; ResourceManager.HeaderVersionNumber = 1 |
| Specifica | learn.microsoft.com |
Conversioni RESOURCES
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file RESOURCES.