c# .net visual-studio embedded-resource solution-explorer

c# - ¿Cómo utilizar el archivo de recursos compartidos entre proyectos en una solución?



.net visual-studio (5)

  1. La forma correcta de compartir recursos es crear un proyecto compartido global. Crea un nuevo proyecto con el nombre de Recursos :
  1. A continuación, debemos agregar algunos recursos (como iconos) al proyecto. Haga esto como de costumbre. Vaya a la configuración de proyectos, seleccione la pestaña Recursos y Agregar archivo existente ... al proyecto. Podemos ver que el icono se agregó al proyecto y se copió en la carpeta local:
  1. El siguiente paso consiste en agregar este ícono a los otros proyectos. Tenga en cuenta la importante diferencia, debe agregar este icono como un enlace !

    Añadir como un enlace evita la duplicación de recursos. Cree un nuevo proyecto dentro de la misma solución y asígnele el nombre, por ejemplo, Principal . Cree alguna carpeta en este nuevo proyecto y asígnele el nombre Recursos (el nombre lógico para nuestro propósito). Luego, haga clic con el botón derecho en esta carpeta, seleccione Agregar elemento existente ... y elija el archivo de imagen de la carpeta del proyecto compartido. Asegúrate de usar Añadir como enlace aquí! Si se hace correctamente, el icono del archivo recién agregado tendrá un aspecto ligeramente diferente (ver más abajo):

El icono del recurso agregado debe verse así

  1. Ahora debemos configurar la acción de compilación para este archivo en Ninguno . Para esto selecciona el archivo y ve a la ventana de Propiedades . Allí elige Ninguno para Construir Acción . Necesitamos hacer esto para evitar incrustar este ícono en el ensamblaje:
  1. Finalmente necesitamos agregar los archivos vinculados a los recursos del proyecto correspondiente. Abra las propiedades del proyecto para el proyecto donde acabamos de agregar los archivos. Elija la pestaña de Recursos y arrastre el archivo vinculado allí:

Estos son los cinco pasos simples que debe realizar para compartir íconos entre proyectos. Podría preguntar "¿Cuáles son los beneficios de esto?" Los beneficios son:

  • Almacenamos recursos en un solo lugar, y
  • Es fácil reemplazar un icono por uno nuevo.

Tengo un problema con los archivos de recursos.

Tengo una solución con dos proyectos. El primer proyecto contiene el archivo ImageResource.resx con las imágenes que uso. Cada Form en este proyecto puede acceder a este archivo desde el diseñador. Pero puedo ver en el archivo ImageResource.resx del diseñador para usarlo del segundo proyecto (la referencia al segundo proyecto está presente ).

He agregado el archivo ImageResource.resx como un enlace a mi segundo proyecto. ¡Y lo vi en el diseñador! Pero cuando uso una imagen de este recurso en el segundo proyecto, Visual Studio modificó mi archivo original (establece los espacios de nombres y otros ...) y se rompe mi solución. También Visual Studio me dice que ImageResource.resx está presente en el first_project.dll y second_project.dll dos dll second_project.dll

¿Puede alguien ayudarme a usar correctamente los recursos compartidos entre proyectos?


¿Se puede usar un enlace simbólico para compartir el archivo en varias carpetas?

ventanas:

mklink linked_location/ImageResource.resx original_location/ImageResource.resx C:/Users/preet>mklink Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target /D Creates a directory symbolic link. Default is a file symbolic link. /H Creates a hard link instead of a symbolic link. /J Creates a Directory Junction. Link specifies the new symbolic link name. Target specifies the path (relative or absolute) that the new link refers to.


Esto no me funcionó y encontré otro enfoque (VS2015 +). Consulte https://.com/a/45471284/4151626

En resumen, el proyecto compartido se incluye directamente en el proyecto periférico. Por lo tanto, a pesar de que el IDE no admite elementos <Resource> en el proyecto compartido. <Resource> elementos <Resource> se pueden agregar al proyecto compartido, a través de un editor de texto. Luego se incorporan en el proyecto periférico durante la construcción.

(Disculpas por el hipervínculo. Simplemente volvería a publicar la respuesta para mayor claridad, pero los editores de eliminan esto, eliminando las respuestas duplicadas para evitar que vengas).


No puede ver el recurso si no es público y está configurado de forma predeterminada en "Amigo". Puede configurar el "Modificador de acceso" en el Diseñador visual (esquina superior derecha).


Si un archivo de recursos se comparte realmente entre proyectos, debe colocarlo en un proyecto compartido.

Solution ''Sample'' Project Sample.Data Project Sample.Business Project Sample.UI Project Sample.Resource //shared resources are put in a shared project