2011-03-28 58 views
0

今天發生了一些奇怪的事情。ASP.net資源文件發生了一些奇怪的事

我正在使用全局資源的多語言應用程序。

我有幾個文件,每種語言一個。即companies.es.resx,companies.en.resx等 沒有什麼特別的或不同於任何其他普通的多語言應用程序。

今天,應用程序失敗,我追查問題是HttpContext.GetGlobalResourceObject沒有找到資源文件。

我抓了一會兒腦後,記得昨天在關閉Visual Studio之前,我刪除了一個垃圾資源文件。這個文件沒有使用,實際上它是空的。

只是爲了「你永遠不知道」我創建了一個新的空白資源文件,並且Walla!一切都開始再次完美。

與這個文件唯一的區別是它的名字沒有像test.resx這樣的語言。 我不明白,它太奇怪了。

另一個有趣的事情是,當我嘗試使用「資源」訪問資源時,測試是我獲得的唯一資源。

任何想法發生了什麼?

我使用MVC 3的visual studio 2010.

謝謝! Edgar

回答

0

使用資源文件進行多語言項目時,需要使用其他語言文件(如companies.es.resxcompanies.fr.resx)的默認資源文件(沒有任何語言擴展名,如companies.resx)。

原因:當沒有文件存在時,與當前文化匹配,默認文件被.net使用。例如,你有兩個基於語言文件

  1. .fr.resx法國
  2. .es.resx爲Espanish例如

如果當前用戶的語言比這些例如Arabic其他則默認的資源文件會用過的。即.resx,沒有任何特定的語言擴展。

+0

謝謝!這很有道理!現在我明白了什麼是沒有意義的錯誤消息的意思! – epaulk 2011-03-28 06:41:55

+0

@epaulk,建議您必須包含默認的資源文件'resx',並且很有可能您的本地化的'.es.resx'文件的密鑰少於默認的'.resx'文件 – 2011-03-28 06:49:54

0

我在VS2010中也有資源問題。嘗試引用資源表中的現有資源之後,Visual Studio崩潰了。它甚至沒有讓我糾正錯誤的引用,因爲它一直在崩潰。 我通過使用常規文本編輯器刪除文件中的錯誤行,然後再次運行VS,解決了此問題。 看來,VS2010有一些資源問題。