Aggiunta e modifica di risorse
Aggiornamento: novembre 2007
Le applicazioni Visual C# spesso includono dati che non fanno parte del codice sorgente. Tali dati vengono indicati come risorse del progetto e possono comprendere dati binari, file di testo, file audio o video, tabelle di stringhe, icone, immagini, file XML o qualsiasi altro tipo di dati necessario per l'applicazione. I dati di risorsa del progetto vengono archiviati in formato XML nel file con estensione resx, denominato Resources.resx per impostazione predefinita, che può essere aperto in Esplora soluzioni. Per ulteriori informazioni sulle risorse del progetto, vedere Utilizzo di file di risorse.
Aggiunta di risorse ai progetti
È possibile aggiungere risorse a un progetto scegliendo Aggiungi elemento esistente dal menu Progetto oppure scegliendo Aggiungi risorsa nella pagina Risorse in Progettazione progetti.
È possibile aggiungere risorse al progetto come risorse collegate, ovvero file esterni, o come risorse incorporate direttamente nel file con estensione resx.
Quando si aggiunge una risorsa collegata, nel file con estensione resx in cui sono archiviate le informazioni sulle risorse del progetto viene indicato soltanto un percorso relativo al file di risorse sul disco. Le immagini, i video o altri file complessi aggiunti come risorse collegate possono essere modificati utilizzando un editor predefinito associato a quel tipo di file in Progettazione risorse.
Quando si aggiunge una risorsa incorporata, i dati vengono archiviati direttamente nel file di risorse del progetto con estensione resx. Le stringhe possono essere archiviate esclusivamente come risorse incorporate.
Per ulteriori informazioni, vedere Risorse incorporate e collegate.
Modifica delle risorse
Tramite Progettazione risorse è possibile aggiungere e modificare le risorse del progetto durante lo sviluppo associando un'applicazione predefinita per la modifica di ogni risorsa. È possibile accedere a Progettazione risorse facendo clic con il pulsante destro del mouse su Proprietà in Esplora soluzioni, scegliendo Apri, quindi facendo clic sulla scheda Risorse in Progettazione progetti. Per ulteriori informazioni, vedere Pagina Risorse, Progettazione progetti. Di seguito sono illustrate le opzioni del menu di Progettazione risorse:
Per modificare risorse incorporate, è necessario operare direttamente nel file con estensione resx e cambiare i singoli caratteri o byte. È quindi più comodo archiviare tipi di file complessi come risorse collegate durante la fase di sviluppo. È possibile utilizzare Editor binario per modificare i file di risorse, incluso il file con estensione resx, a livello binario in formato esadecimale o ASCII. È invece possibile utilizzare Editor di immagini per modificare icone, cursori e i file con estensione jpeg e GIF archiviati come risorse collegate. Come editor di questi tipi di file è inoltre possibile scegliere altre applicazioni. Per ulteriori informazioni, vedere Visualizzazione e modifica di risorse in un editor di risorse.
Nota
L'editor binario e l'editor di immagini sono disponibili in tutte le versioni di Visual Studio eccetto le versioni Express.
Compilazione di risorse negli assembly
Quando si genera l'applicazione, viene richiamato lo strumento resgen.exe per convertire le risorse dell'applicazione in una classe interna denominata Resources. Questa classe si trova nel file Resources.Designer.cs nidificato nel file Resources.resx in Esplora soluzioni. La classe Resources incapsula tutte le risorse del progetto in proprietà get statiche di sola lettura per fornire risorse fortemente tipizzate in fase di esecuzione. Quando si esegue la compilazione tramite l'IDE di Visual C#, tutti i dati di risorsa incapsulati, incluse le risorse incorporate nel file con estensione resx e i file collegati, vengono compilati direttamente nell'assembly dell'applicazione, ovvero il file con estensione exe o dll. In altre parole, nell'IDE di Visual C# viene sempre utilizzata l'opzione del compilatore /resource. Se si esegue la compilazione al prompt dei comandi, è possibile specificare l'opzione del compilatore /linkresource che consente di distribuire risorse in un file separato dall'assembly principale dell'applicazione. Si tratta di uno scenario avanzato, necessario solo in alcune situazioni rare. Uno scenario più comune per la distribuzione di risorse separate dall'assembly principale dell'applicazione consiste nell'utilizzare gli assembly satellite, come descritto in una sezione successiva.
Accesso alle risorse in fase di esecuzione
Per accedere a una risorsa in fase di esecuzione, fare riferimento ad essa come si farebbe con qualsiasi altro membro della classe. Nell'esempio riportato di seguito viene illustrato come recuperare una risorsa bitmap denominata Image01.
System.Drawing.Bitmap bitmap1 = Properties.Resources.Image01;
Internamente la proprietà get utilizza la classe ResourceManager per creare una nuova istanza dell'oggetto.
Per ulteriori informazioni, vedere Generatore di file di risorse (Resgen.exe).
Risorse in assembly satellite
Se si creano applicazioni che verranno localizzate (tradotte) in più lingue, è possibile archiviare ogni insieme di stringhe specifiche delle impostazioni cultura come risorsa all'interno del relativo assembly satellite. Quando si distribuisce l'applicazione, vengono inclusi l'assembly principale dell'applicazione e tutti gli assembly satellite appropriati. In seguito sarà possibile aggiungere assembly satellite o modificare quelli esistenti senza ripetere la compilazione dell'assembly principale dell'applicazione. Per ulteriori informazioni sugli assembly satellite disponibili in linea su MSDN, cercare le sezioni relative alla creazione di assembly satellite e alla ricerca e all'utilizzo delle risorse per specifiche impostazioni cultura.