2010-08-20 22 views
6

He escrito una aplicación MVC MUY simple que solo muestra una sola cadena de un archivo de recursos. Funciona bien en mi máquina local, pero cuando despliego el proyecto al servidor web, aparece el error.¿Cómo publico/despliego un proyecto MVC con recursos de ResX?

CS0103: no existe el nombre de 'Recursos' en el contexto actual

Puede replicar fácilmente exactamente lo que estoy haciendo en tan sólo 10 pasos!

  1. Cree una nueva aplicación web MVC 2.
    (Archivo-> Nuevo-> Proyecto-> ASP.NET MVC 2 Aplicación Web, dicen no al proyecto de pruebas unitarias)

  2. agregar la carpeta "App_GlobalResources".
    (clic derecho en el proyecto y seleccione Add-> Añadir Carpeta de ASP.NET> App_GlobalResources)

  3. Añadir un archivo de recursos a esta carpeta.
    (clic derecho en la carpeta y seleccione Add-> Nuevo elemento ...-> Recursos Archivo. Nombre que Strings.resx)

  4. añadir una sola cadena a la mesa de recursos.
    (Name = "Hola Mundo", Valor = "I localizada Hello World!")

  5. Establecer las propiedades de archivo del archivo de recursos.
    (Haga clic en el archivo y Strings.resx int la ventana Propiedades de Build Action = "Recurso incrustado" y el CustomTool = "PublicResXFileCodeGenerator")

  6. Añadir un nuevo controlador
    (Haga clic derecho en la carpeta y seleccione Controladores Agregar-> controlador ... nombre que HelloWorldController.cs)

  7. Añadir un la vista
    (Con el cursor en el método del Índice de HelloWorldController.cs Presione CTRL-MV. Utilice los valores por defecto, incluyendo nombre de vista = "Índice")

  8. Modifique la vista para que muestre nuestra cadena desde el archivo de recursos.
    sustituir el contenido del marcador de posición maincontent con

    <h2><%: Resources.Strings.HelloWorld %></h2> 
    
  9. Ejecutar de forma local para comprobar que funciona. Lo que debería.

  10. publicarlo en un servidor web y visita la URL "http://localhost/HelloWorld"

Aquí es donde veo el error descrito en la parte superior.

Me imagino que la configuración que he puesto en el archivo ResX es incorrecta y el recurso no se ha publicado en el servidor.

La ayuda es muy apreciada.

Gracias!

Respuesta

14

¡Ah, ja! Lo averigué. En Gran parte que a este artículo:
http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

Suena como la carpeta App_GlobalResources no coopera con MVC. Así que moví mi resx a una nueva carpeta
~/Recursos/Cuerdas /Strings.resx

Esto, junto con 1 cambio de menor importancia para establecer el archivo de propiedades
Herramienta personalizada Espacio de nombres = Recursos

y problema resuelto

+0

¡Muchas gracias! Esto me estaba molestando y la respuesta se me presentó cuando intentaba publicar una pregunta aquí. –

+0

Fácil, concisa y funciona, ¡muchas gracias! :-) – eka808

Cuestiones relacionadas