2012-07-18 10 views
8

¡Esta es mi primera pregunta aquí!Editar archivos ASP.NET MVC 3 resx en el servidor de implementación sin recompilar

Tengo un proyecto de ASP.NET MVC 3 con una carpeta de Propiedades, que contiene algunos archivos .resx utilizados para diferenciar contenido en mis vistas por idioma (en/es). Estoy trabajando en VS2010 con .Net 4.

Cuando despliego la aplicación al servidor, me parece que no se publican archivos resx, y en lugar de eso, tengo algunos archivos .dll.

Establecí la acción de compilación en Embedded resource, Do not copy en el directorio de salida y PublicResXFileCodeGenerator como herramienta personalizada en las propiedades de archivos .resx.

Quiero tener archivos .resx en el servidor y poder editarlos sin volver a compilar ni volver a desplegar. Las vistas deben usar esos cambios.

¿Cómo puedo hacer eso?

Gracias por su ayuda !!

+1

Tenía archivos resx en la carpeta de Propiedades. Tal vez usarlos de la carpeta App_GlobalResources me permita hacer eso? – Jawen

+1

¡Probé esa solución y funciona! – Jawen

+0

PublicResXFileCodeGenerator parece ser un contenedor para http://msdn.microsoft.com/en-us/library/system.resources.tools.stronglytypedresbuilderbuilder.aspx que convierte resx en clases (dlls). ¿Es necesario para lo que estás haciendo? –

Respuesta

3

poner los archivos en sus resx App_GlobalResources y cambiar la "Acción de generación" a contenido y "Copiar a directorio de salida" a falso. Asegúrese de que el "Custom Tool" está ajustado a GlobalResourceProxyGenerator

Eso debería hacer que se puede cambiar, incluso en tiempo de ejecución.

Puede usar simplemente xpath para consultar sobre ellos, tomar las claves, valores y comentarios y editarlos como desee utilizando un XDocument.

También debe saber que tal cosa no funcionará con la publicación de visual studio porque App_GlobalResources no está permitido con el sitio web precompilado.

+0

Gracias Adam. Cuando encontré esa solución, ¡lo intenté y funcionó bien! – Jawen

+0

@Adam Tal, he seguido los pasos anteriores, está trabajando pero todas las sesiones se borran/el grupo de aplicaciones se recicla después de editar el recurso de cadena en el tiempo de ejecución. ¿Cómo lo mantuviste? – Pawan

+0

@Pawan: el grupo de aplicaciones se reciclará una vez que detecte cualquier cambio en App_GlobalResources. ¡No debe editar mucho el resx! Si tiene una necesidad de este tipo, podría considerar una solución basada en la base de datos –

Cuestiones relacionadas