Partager via


Ajout et modification de ressources

Mise à jour : novembre 2007

Les applications Visual C# comprennent souvent des données qui ne sont 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

Pour ajouter des ressources à un projet, cliquez sur Ajouter un élément existant dans le menu Projet ou cliquez sur le bouton Ajouter une ressource dans 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 des informations sur les ressources de votre projet ne comporte qu'un chemin d'accès relatif du 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.

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. Pour accéder au Concepteur de ressources, cliquez avec le bouton droit sur Propriétés dans l'Explorateur de solutions, cliquez sur Ouvrir, puis cliquez 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 l'Éditeur binaire pour modifier les fichiers de ressources, y compris le fichier .resx, au niveau binaire au format hexadécimal ou ASCII. Vous pouvez utiliser l'Éditeur d'images pour modifier des icônes, des curseurs, des fichiers .jpeg et des fichiers GIF qui sont stockés en tant que ressources liées. Vous pouvez également sélectionner d'autres applications comme éditeurs pour ces types de fichiers. Pour plus d'informations, consultez Affichage et modification des ressources dans un Éditeur de ressources.

Remarque :

L'Éditeur binaire et l'Éditeur d'images sont disponibles dans toutes les éditions de Visual Studio, sauf les éditions Express.

Compilation de ressources en assemblys

Lorsque vous générez votre application, Visual Studio appelle l'outil resgen.exe pour convertir les ressources de votre application en classe interne nommée Resources. Cette classe figure dans le fichier Resources.Designer.cs qui est imbriqué sous le fichier Resources.resx dans l'Explorateur de solutions. La classe Resources encapsule toutes les ressources de votre projet dans des propriétés get statiques et en lecture seule en vue de fournir des ressources fortement typées au moment de l'exécution. Lorsque vous générez votre application via l'IDE de 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 directement compilées 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 d'une invite 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. Pour déployer des ressources indépendamment de l'assembly d'application principal, le scénario le plus courant consiste à utiliser des assemblys satellites, comme indiqué dans une autre section.

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

Pour accéder à une ressource au moment de l'exécution, référencez-la de la même manière que vous le feriez pour tout autre membre de classe. L'exemple suivant illustre comment récupérer une ressource bitmap que vous avez nommée Image01.

System.Drawing.Bitmap bitmap1 = 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 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, incluez l'assembly d'application principale et toutes les assemblys satellites appropriés. Vous pouvez ensuite ajouter des assemblys satellites ou modifiez ceux qui existent déjà sans recompiler l'assembly d'application principal. Pour plus d'informations sur les assembly satellite en ligne sur MSDN, consultez « Création d'assemblys satellites » et « Recherche et utilisation de ressources pour une culture spécifique ».

Voir aussi

Autres ressources

Utilisation de l'IDE de Visual C# Express