App_GlobalResources全球化

时间:2012-03-05 23:20:02

标签: asp.net asp.net-2.0 app-globalresources

我在全球化方面遇到了一些问题。我在ASP.NET 2.0中继承了一个非常古老的项目。它有多个用于多种语言的全球化文件。

但是,当我构建应用程序以进行部署时,它在我们的测试环境中运行良好。但是当我们将应用程序复制到生产环境时,它会在<%$ Resources:Global,MyStringHere%>上出错。

说明在资源文件中找不到MyStringHere。

为什么这在开发和测试环境中运行良好,但在生产中却没有?从一个环境到下一个环境的文件完全相同(尽管inetpub文件位于每台机器的不同目录中)。

有人有什么想法吗?

修改

很奇怪。如果我从代码后面调用资源。

public string _MyStringName = Resources.Global.MyStringHere;

这适用于所有环境。

但是,使用旧的:

<%$Resources: Global, MyStringHere %>

仅在生产中出错。

2 个答案:

答案 0 :(得分:0)

这里只是一个黑暗的镜头,但你有基于环境或机器名称配置的密钥吗?我们在许多项目中都这样做。我们的一些项目只会出于特定原因在特定环境中运行。另一个猜测是检查你是否有#if(DEBUG)可能正在跳过代码。

答案 1 :(得分:0)

您确定App_GlobalResources中的.resx文件是否已复制到部署站点? App_GlobalResources文件通常应该与Build Action = Content一起使用,而不是Build Action = Embedded Resources。

在您的开发计算机上,嵌入式资源的设置有效,因为这些文件仍然位于App_GlobalResources,中。嵌入的资源只是被忽略了。这可能会给您错误的印象,即您的构建操作已正确配置。

相关问题