Tengo un proyecto web ejecutándose en VS 2008. Tenemos algunos archivos de recursos globales (* .resx) en la carpeta App_GlobalResources para la internacionalización. Todo esto funciona como un encanto en mi instalación IIS local de VS.Los recursos globales no se pueden resolver después de publicar el sitio web en VS2008
Pero cuando publico mi proyecto web en el sistema de archivos local y/u otro servidor, ya no se pueden encontrar todos los recursos. Así que supongo que la precompilación de alguna manera es corruptora. Cuando llamo a la web precompilada, aparece un error que indica que el objeto de recurso con la clave xyz no se puede encontrar, aunque podría encontrarse antes.
Comprobé con el reflector .NET si el material de recursos ingresó en * .dlls. Todos esos identificadores están allí (bin/Web.dll, bin/<culture> /Web.resources.dll). Los identificadores se cargan así:
<asp:MenuItem NavigateUrl="~/OrderNew.aspx" Text="<%$ Resources:MyProject, MenuNewOrder %>" Value="NewOrder">
Los archivos de recursos se llaman MyProject.resx y MyProject. <cultura> .resx donde <cultura> corresponde a la cultura específica (es decir, MyProject.de-DE.resx).
¿Alguna idea de cómo solucionar esto?
Realmente agradezco cualquier ayuda.
Gracias
Editar:
Si copio la carpeta App_GlobalResources manualmente a la salida, los recursos se pueden cargar normalmente. Entonces realmente me pregunto de qué se trata esta precompilación.
Todavía estoy interesado en resolver el problema "de la manera correcta".
Tuya es la solución a la que finalmente recurrí; parece que tenemos que usar la acción de compilación "recurso incrustado" para acceder a recursos de código subyacente, pero los propios archivos en/app_globalresources para acceder a ellos utilizando <% $ Recursos: Clase, ResKey%>. Parece que debería haber una mejor manera. – Ripside