ASP.net资源文件发生了一些奇怪的事情

时间:2011-03-28 06:03:40

标签: visual-studio-2010 resources localization

今天有些奇怪的事发生在我身上。

我正在使用全球资源开发多语言应用程序。

我有几个文件,每种语言一个。即companies.es.resx,companies.en.resx等 没有任何特殊或不同于任何其他普通的多语言应用程序。

今天,应用程序失败,我追查的问题是HttpContext.GetGlobalResourceObject没有找到资源文件。

在我挠了一会儿之后,我记得昨天,在我关闭Visual Studio之前,我删除了一个垃圾的资源文件。该文件未使用,实际上它是空的。

仅为“你永远不会知道”我创建了一个新的空资源文件,而Walla!一切都开始变得完美了。

与此文件的唯一区别是,它的名称没有像test.resx这样的语言。 我不明白,这太奇怪了。

另一个有趣的事情是,当我尝试使用“资源”访问资源时。测试是我获得的唯一资源。

任何想法发生了什么?

我正在使用带有MVC 3的visual studio 2010。

谢谢! 埃德加

2 个答案:

答案 0 :(得分:0)

我在VS2010中也遇到了资源问题。在尝试引用资源表中的非现有资源后,Visual Studio崩溃了。它甚至没有让我纠正错误的引用,因为它一直在崩溃。 我通过使用常规文本编辑器删除文件中的错误行并在此之后再次运行VS来解决此问题。 似乎VS2010在资源方面存在一些问题。

答案 1 :(得分:0)

在处理多语言项目的资源文件时,其他基于语言的文件(如companies.resxcompanies.es.resx)需要默认资源文件(不包含任何语言扩展名,如companies.fr.resx)。

原因:当没有文件存在时,与当前文化匹配,然后.net使用默认文件。例如,您有两个基于语言的文件

  1. .fr.resx代表法语
  2. .es.resx代表Espanish
  3. 如果当前用户的语言不是例如Arabic,那么将使用默认资源文件。即.resx,没有任何特定的语言扩展名。