web-dev-qa-db-fra.com

Quelle est la différence entre une ressource et une ressource intégrée dans une application C #?

Quand dois-je utiliser l'un ou l'autre?

J'aimerais que tous les fichiers que j'utilise dans mon application (images, son, fichier xml, etc.) soient à l'intérieur du fichier .exe afin que je ne déploie pas avec un tas de dossiers et de fichiers.

Merci pour l'info.

78
Sergio Tapia

Les actions de génération "Ressource" et "Contenu" consistent à accéder aux ressources WPF à l'aide des Uris. Cependant, "Embedded Resource" concerne les technologies antérieures. Cependant, les deux options intègrent la ressource dans Assembly mais l'option "Resource" à utiliser pour WPF.

MSDN fournit une explication complète ici .

70
viky

Une ressource WPF (build action = Resource ) exploite les ressources intégrées telles que prises en charge par le framework .NET principal, mais ajoute la prise en charge de l'accès à la ressource intégrée via un - pack URI . De MSDN :

Les fichiers de ressources WPF ne sont pas les mêmes que les types de ressources incorporés ou liés qui peuvent être configurés à l'aide de la prise en charge principale de .NET Framework pour les ressources d'assembly. Bien que les fichiers de ressources WPF tirent parti de la prise en charge des ressources intégrées du .NET Framework, la possibilité d'accéder aux fichiers de ressources WPF à l'aide d'URI de pack est plus facile que d'utiliser des espaces de noms.

7
Kent Boogaart

Tel que rapporté par MSDN,

Les ressources intégrées sont le meilleur choix si vous devez partager des fichiers de ressources d'application (.resx) entre plusieurs projets. Par exemple, si vous disposez d'un fichier de ressources commun contenant les logos de votre entreprise, des informations sur les marques et autres, l'utilisation de ressources intégrées signifie que vous devez copier uniquement le fichier .resx et non les fichiers de données de ressources associés.

Vous ne pouvez pas modifier directement les ressources intégrées. Si vous essayez de modifier une ressource incorporée, vous recevrez un message vous invitant à convertir l'élément en une ressource liée afin de le modifier. La conversion est recommandée mais facultative. Vous devez les exporter, apporter vos modifications dans un programme externe, puis les réimporter dans votre projet.

3
kiamlaluno

Merci pour tous les rapports, cela m'a aidé à trouver plus précisément où était le problème: Pour moi, ce sont les images utilisées comme icône du projet dans la barre des tâches qui ont été construites en tant que ressources et ont dû être construites en tant que contenu. Toutes les autres images peuvent être construites en tant que ressources, aucun problème.

J'espère que cela aide pour l'avenir.

0
user2064543