我有一个在 VS 2008 中运行的网络项目。我们在 App_GlobalResources 文件夹中有一些全局资源文件 (*.resx) 用于国际化。所有这些都像我在 VS 中安装的本地 IIS 的魅力一样。
但是当我将我的网络项目发布到本地文件系统和/或另一台服务器时,所有资源都找不到了。所以我猜预编译会以某种方式破坏东西。当我调用预编译的 web 时,我得到一个错误,即无法找到带有键 xyz 的资源对象,尽管它之前可以找到。
我使用 .NET 反射器检查了资源是否进入 *.dll。所有这些标识符都在那里(bin/Web.dll、bin/<culture>/Web.resources.dll)。标识符的加载方式如下:
<asp:MenuItem NavigateUrl="~/OrderNew.aspx" Text="<%$ Resources:MyProject, MenuNewOrder %>" Value="NewOrder">
资源文件称为 MyProject.resx 和 MyProject.<culture>.resx,其中 <culture> 对应于特定的文化(即 MyProject.de-DE.resx)。
任何想法如何解决这个问题?
我真的很感激任何帮助。
谢谢
编辑:
如果我手动将 App_GlobalResources 文件夹复制到输出,则资源可能会正常加载。所以我真的很想知道这个预编译是关于什么的。
我仍然对“以正确的方式”解决问题感兴趣。