Ajout et modification de ressources (Visual C#)

Mise à jour : novembre 2007

Les applications Visual C# incluent souvent des données qui ne constituent pas du code source. Ces données sont désignées par le nom de ressource de projet et peuvent inclure des données binaires, des fichiers texte, audio ou vidéo, des tables de chaînes, des icônes, des images, des fichiers XML et tout autre type de données que votre application requiert. Les données de ressources de projet sont stockées au format XML dans le fichier .resx (nommé Resources.resx par défaut) qui peut s'ouvrir dans l'Explorateur de solutions. Pour plus d'informations sur les ressources de projet, consultez Utilisation des fichiers de ressources.

Ajout de ressources aux projets

Vous pouvez ajouter des ressources à un projet en cliquant avec le bouton droit sur le nœud Propriétés de votre projet dans l'Explorateur de solutions, puis en cliquant successivement sur Ouvrir et sur le bouton Ajouter une ressource de la page Ressources du Concepteur de projets.

Vous pouvez ajouter des ressources à votre projet soit sous la forme de ressources liées, qui sont des fichiers externes, soit sous la forme de ressources incorporées, qui sont incorporées directement dans le fichier .resx.

  • Lorsque vous ajoutez une ressource liée, le fichier .resx qui stocke vos informations sur les ressources de projet inclut uniquement un chemin d'accès relatif au fichier de ressources sur le disque. Si vous ajoutez des images, des vidéos ou d'autres fichiers complexes en tant que ressources liées, vous pouvez les modifier à l'aide d'un éditeur par défaut que vous associez à ce type de fichier dans le Concepteur de ressources.

  • Lorsque vous ajoutez une ressource incorporée, les données sont stockées directement dans le fichier de ressources du projet (.resx). Les chaînes peuvent uniquement être stockées comme ressources incorporées.

Pour plus d'informations, consultez Ressources liées et incorporées et Ressources au format de fichier .Resx.

Modification des ressources

Le Concepteur de ressources vous permet d'ajouter et de modifier des ressources de projet pendant le développement en associant une application par défaut pour la modification de chaque ressource. Vous accédez au Concepteur de ressources en cliquant avec le bouton droit sur Propriétés dans l'Explorateur de solutions, en cliquant sur Ouvrir, puis sur l'onglet Ressources dans le Concepteur de projets. Pour plus d'informations, consultez Page Ressources, Concepteur de projets. L'illustration suivante affiche les options de menu du Concepteur de ressources :

Éléments de menu du Concepteur de ressources

Pour modifier des ressources incorporées, vous devez travailler directement dans le fichier .resx pour manipuler les différents caractères ou octets. C'est pourquoi il est plus commode de stocker des types de fichier complexes sous la forme de ressources liées pendant le développement. Vous pouvez utiliser Éditeur binaire pour modifier les fichiers de ressources, y compris le fichier .res, au niveau binaire au format hexadécimal ou ASCII. Vous pouvez utiliser l'Éditeur d'images pour modifier des icônes et des curseurs aussi bien que des fichiers .jpeg et GIF qui sont stockés sous la forme de ressources liées. Vous pouvez également choisir d'autres applications comme éditeurs pour ces types de fichier. Pour plus d'informations, consultez Affichage et modification des ressources dans un Éditeur de ressources.

Compilation de ressources en assemblys

Lorsque vous générez votre application, Visual Studio appelle l'outil resgen.exe pour convertir vos ressources d'application en une classe interne appelée Resources. Cette classe est contenue dans le fichier Resources.Designer.cs qui est imbriqué sous le fichier Resources.resx dans l'Explorateur de solutions. La classe Resources encapsule toutes vos ressources de projet dans des propriétés get statiques et en lecture seule comme un moyen de fournir des ressources fortement typées au moment de l'exécution. Lorsque vous générez par le biais de l'IDE Visual C#, toutes les données de ressources encapsulées, y compris les ressources qui ont été incorporées dans le fichier .resx et les fichiers liés, sont compilées directement dans l'assembly d'application (fichier .exe ou .dll). En d'autres termes, l'IDE Visual C# utilise toujours l'option de compilateur /resource. Si vous générez à partir de la ligne de commande, vous pouvez spécifier l'option de compilateur /linkresource qui vous permettra de déployer des ressources dans un fichier séparé de l'assembly d'application principal. C'est un scénario avancé, qui est uniquement nécessaire dans certains cas rares. Un scénario plus courant de déploiement séparé des ressources à partir de l'assembly d'application principal consiste à utiliser des assemblys satellites, comme illustré ci-après.

Accès aux ressources au moment d'exécution

Pour accéder à une ressource au moment de l'exécution, référencez-la simplement comme tout autre membre de classe. L'exemple suivant illustre comment récupérer une ressource bitmap que vous avez nommée Image01. Notez que la classe Resources se trouvant dans un espace de noms appelé <projectName>.Properties, vous devez utiliser le nom complet pour chaque ressource ou ajouter la directive using appropriée dans le fichier source à partir duquel vous accédez à la classe Resources.

System.Drawing.Bitmap bitmap1 = myProject.Properties.Resources.Image01;

En interne, la propriété Get utilise la classe ResourceManager pour créer une nouvelle instance de l'objet.

Pour plus d'informations, consultez Ressources dans les applications et Outil Resource File Generator Tool (Resgen.exe).

Ressources dans les assemblys satellites

Si vous créez des applications qui seront localisées (traduites) dans plusieurs langues, vous pouvez stocker chaque jeu de chaînes spécifiques à une culture comme une ressource dans son propre assembly satellite. Lorsque vous distribuez votre application, vous incluez l'assembly d'application principal avec les assemblys satellites appropriés. Vous pouvez ajouter ensuite des assemblys satellites supplémentaires ou modifiez ceux qui existent sans recompiler l'assembly d'application principal. Pour plus d'informations, consultez Création d'assemblys satellites et Recherche et utilisation de ressources pour une culture spécifique.

Voir aussi

Concepts

Introduction au Concepteur de projets

Autres ressources

Visual C#

Mise en route de Visual C#

Assemblys dans le Common Language Runtime

Globalisation et localisation d'applications