Luego de mirar en diferentes repositorios y páginas finalmente dimos con la respuesta que te compartimos ahora.
Solución:
Si usa un archivo .resx, probablemente desee aprovechar la funcionalidad de código generado automáticamente que Visual Studio proporciona para los archivos .resx. Si va a incluir un archivo .resx en varios proyectos, es posible que desee que cada proyecto genere automáticamente su propio código. Puede hacer esto porque desea usar un generador de código diferente para ciertos proyectos (ResXCodeFileGenerator frente a GlobalResourceProxyGenerator) o simplemente desea que el espacio de nombres del código generado esté alineado con el proyecto. Así es como puedes configurarlo.
Configuré una nueva solución con un proyecto de aplicación de consola C# llamado SharedResx. También agregué un proyecto de biblioteca de clases de C# a la solución llamado Recursos, y dentro de ese proyecto agregué un nuevo archivo de recursos llamado MySharedResource.resx. Visual Studio crea automáticamente un archivo MySharedResource.Designer.cs dentro de mi proyecto de recursos con el código dentro del espacio de nombres de recursos.
Primero, incluya su archivo .resx existente en el proyecto de aplicación de la consola SharedResx como un enlace, como han mencionado otras respuestas. Agregar elemento existente -> buscar ..ResourcesMySharedResource.resx -> use la lista desplegable en el botón Agregar para seleccionar “Agregar como enlace”.
A continuación, deberá modificar manualmente el archivo del proyecto para configurar la generación automática. Puede consultar Resources.csproj para ver cómo se configura la generación automática allí como una guía sobre cómo debería verse en SharedResx.csproj. Haga clic con el botón derecho en el proyecto SharedResx y seleccione Descargar proyecto. Haga clic con el botón secundario nuevamente y seleccione Editar SharedResx.csproj. Desplácese hacia abajo para encontrar el elemento EmbeddedResource que corresponde a su archivo .resx vinculado:
MySharedResource.resx
Modifique esto para incluir un elemento Generator y un elemento LastGenOutput:
MySharedResource.resx
ResXFileCodeGenerator
SharedResx.MySharedResource.Designer.cs
Nota: la edición manual solo es necesaria si desea controlar el nombre del archivo generado como lo hice en mi ejemplo. De lo contrario, puede especificar el elemento Generador mediante la configuración de Herramienta personalizada en la ventana Propiedades de Visual Studio.
También tenga en cuenta que en el elemento LastGenOutput he nombrado el archivo generado con el nombre del proyecto SharedResx como un prefix. Esto hará que ResXFileCodeGenerator cree un archivo denominado SharedResx.MySharedResource.Designer.cs en la misma carpeta que el archivo .resx. Experimenté especificando una ruta relativa en lugar de solo un nombre de archivo en el elemento LastGenOutput para que el archivo generado esté en una carpeta diferente, como la carpeta SharedResx, pero descubrí que no funcionaba de manera consistente. Si bien pude generar el archivo en la ubicación correcta la primera vez, el elemento LastGenOutput perdió su valor para que las generaciones posteriores no tuvieran como objetivo esa misma ubicación. Me di por vencido y solo usé el nombre del proyecto. prefix como parte del nombre del archivo para evitar posibles conflictos con otros proyectos.
Ahora, cierre el archivo SharedResx.csproj y haga clic con el botón derecho nuevamente para seleccionar Recargar proyecto. Haga clic con el botón derecho en el archivo MySharedResource.resx vinculado en el proyecto SharedResx y seleccione Ejecutar herramienta personalizada. Ahora debería ver que se agregó un nuevo archivo vinculado denominado SharedResx.MySharedResource.Designer.cs al proyecto como un archivo anidado en el archivo MySharedResource.resx. Es posible que deba activar la opción “Mostrar todos los archivos” en la ventana del Explorador de soluciones para poder verlo.
Ahora tiene un archivo de código generado automáticamente a partir de su archivo .resx compartido incluido en su proyecto.
Visual Studio también le permite vincular archivos en lugar de copiarlos. La función está un poco oculta, pero puede acceder a ella de esta manera:
- Elija “agregar archivo existente”
- Después de seleccionar el archivo, haga no haga doble clic, pero tenga en cuenta la pequeña flecha desplegable junto al botón “Abrir”.
- Seleccione “Enlazar archivo” en el menú desplegable.
En realidad, no he probado esto con archivos resx, pero puede intentar Agregar como enlace.
Si te gustó nuestro trabajo, puedes dejar un post acerca de qué le añadirías a este post.