¿Cuál es la diferencia entre un recurso y un recurso integrado en una aplicación C #?

89

¿Cuándo debo usar uno u otro?

Me gustaría que todos los archivos que uso en mi aplicación (imágenes, sonido, archivo xml, etc.) estén dentro del archivo .exe para que no implemente con un montón de carpetas y archivos.

Gracias por la info.

Sergio Tapia
fuente

Respuestas:

82

Las acciones de compilación de "Recursos" y "Contenido" son para acceder a los recursos de WPF mediante Uris. Sin embargo, "recurso integrado" es para tecnologías anteriores. Sin embargo, ambas opciones integran el recurso en el ensamblado, pero la opción "Recurso" se utilizará para WPF.

MSDN proporciona una explicación completa aquí .

viky
fuente
¡Tienes razón! Configuré todas las imágenes de mi proyecto WPF en Resource y reconstruí la fuente. Ahora, cuando navego a la carpeta Debug, no puedo encontrar los archivos en ninguna parte, deben ser parte del .exe, exactamente como lo quiero. ¡No puedo agradecerles lo suficiente! :)
Sergio Tapia
1
El vínculo de MSDN está roto. Una explicación adicional aquí sería muy buena.
Michael Harris
7

Un recurso WPF (acción de compilación = Recurso ) aprovecha los recursos incrustados admitidos por el marco .NET principal, pero agrega compatibilidad para acceder al recurso incrustado a través de un URI de paquete . Desde MSDN :

Los archivos de recursos de WPF no son los mismos que el tipo de recursos incrustados o vinculados que se pueden configurar mediante la compatibilidad con .NET Framework principal para los recursos de ensamblado. Si bien los archivos de recursos de WPF aprovechan la compatibilidad con los recursos integrados de .NET Framework, la capacidad de acceder a los archivos de recursos de WPF mediante paquetes URI es más fácil que usar espacios de nombres.

Kent Boogaart
fuente
2

Según lo informado por MSDN,

Los recursos integrados son la mejor opción si tiene que compartir archivos de recursos de aplicaciones (.resx) entre varios proyectos. Por ejemplo, si tiene un archivo de recursos común que contiene los logotipos de su empresa, información de marca registrada y demás, el uso de recursos integrados significa que debe copiar solo el archivo .resx y no los archivos de datos de recursos asociados.

No puede editar recursos incrustados directamente. Si intenta editar un recurso incrustado, recibirá un mensaje que le pedirá que convierta el elemento en un recurso vinculado para poder editarlo. Se recomienda la conversión, pero es opcional. Debe exportarlos, hacer sus modificaciones en un programa externo y luego importarlos nuevamente a su proyecto.

kiamlaluno
fuente
4
Esto no responde a la pregunta: ¿cuál es la diferencia entre un recurso integrado y un recurso? Su respuesta solo se refiere a Recursos integrados.
Grokys
3
El texto de la pregunta dice "¿Cuándo debo usar uno u otro?"; Creo que respondí a eso. Las preguntas son realmente dos.
kiamlaluno
1

Gracias por todos los informes, que me ayudaron a encontrar con mayor precisión dónde estaba el problema: para mí, fueron las imágenes utilizadas como icono del proyecto en la barra de tareas las que se construyeron como recursos y tenían que construirse como contenido. Todas las demás imágenes se pueden construir como recursos, no hay problema.

Espero que esto ayude para el futuro.

usuario2064543
fuente