Si está utilizando un archivo .resx, es probable que desee aprovechar la funcionalidad del código generado automáticamente que Visual Studio proporciona para los archivos .resx. Si está incluyendo un archivo .resx en varios proyectos, puede desear que cada proyecto genere automáticamente su propio código. Puede hacer esto porque quiere usar un generador de código diferente para ciertos proyectos (ResXCodeFileGenerator vs. GlobalResourceProxyGenerator) o simplemente puede querer que el espacio de nombre del código generado esté alineado con el proyecto. Así es como puedes configurar eso.
He creado una nueva solución con un proyecto de aplicación de consola C# llamado SharedResx. También agregué un proyecto de biblioteca de clase C# a la solución llamada 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 Resources con el código dentro del espacio de nombres Resources.
Primero, incluya su archivo .resx existente en el proyecto de la aplicación de consola SharedResx como un enlace, como han mencionado otras respuestas. Agregar elemento existente -> buscar .. \ Recursos \ MySharedResource.resx -> use la lista desplegable en el botón Agregar para seleccionar "Agregar como enlace".
A continuación, tendrá que 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 derecho en el proyecto SharedResx y seleccione Descargar proyecto. Haga clic derecho de nuevo y seleccione Editar SharedResx.csproj. atrás para encontrar el elemento EmbeddedResource que corresponde a su archivo .resx vinculado:
<EmbeddedResource Include="..\Resources\MySharedResource.resx">
<Link>MySharedResource.resx</Link>
</EmbeddedResource>
modificar esto para incluir un elemento generador y un elemento LastGenOutput:
<EmbeddedResource Include="..\Resources\MySharedResource.resx">
<Link>MySharedResource.resx</Link>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>SharedResx.MySharedResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
Nota: la edición manual sólo es necesario si desea controlar el nombre del archivo generado como lo he hecho en mi ejemplo. De lo contrario, puede especificar el elemento Generador utilizando la configuración de Herramienta personalizada en la ventana Propiedades en 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 prefijo. Esto causará que ResXFileCodeGenerator cree un archivo llamado SharedResx.MySharedResource.Designer.cs en la misma carpeta que el archivo .resx. He experimentado 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 siguientes generaciones no se dirijan a esa misma ubicación. Renuncié a eso y acabo de utilizar el prefijo del nombre del proyecto como parte del nombre del archivo para evitar posibles conflictos con otros proyectos.
Ahora, cierre el archivo SharedResx.csproj y haga clic de nuevo en el botón derecho para seleccionar Volver a cargar 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 un nuevo archivo vinculado llamado SharedResx.MySharedResource.Designer.cs se agregó 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 verla.
Ahora tiene un archivo de código generado automáticamente a partir de su archivo .resx compartido incluido en su proyecto.
Aprendiz del Dr. Wily: Exactamente lo que necesitaba –
LastGenOutput funcionó perfecto, ¡GRACIAS! – Fred