找不到适合指定文化或中性文化的任何资源

Posted

技术标签:

【中文标题】找不到适合指定文化或中性文化的任何资源【英文标题】:Could not find any resources appropriate for the specified culture or the neutral culture 【发布时间】:2011-01-04 17:34:17 【问题描述】:

我有两个 ASP.NET Web 项目(ProjectA 和 ProjectB)。当 ProjectA 中的类实例化使用资源文件 Blah.resx 的 ProjectB 类时,我收到此错误:

“System.Resources.MissingManifestResourceException”类型的异常发生在 mscorlib.dll 中,但未在用户代码中处理。

找不到任何适合指定文化或中性文化的资源。确保“Resources.Blah.resources”在编译时已正确嵌入或链接到程序集“App_GlobalResources.sn_flri6”中,或者所有所需的附属程序集都是可加载且完全签名的。

这是什么原因造成的?

微软网站上有一篇关于这个http://support.microsoft.com/kb/318603的文章建议:

要解决此问题,请移动所有其他类定义,使它们出现在表单的类定义之后。

这是 Windows 窗体项目的解决方案,我不确定这是否也适用于 Web 项目。

【问题讨论】:

这些是什么类型的项目? 2个网站? 1 个网站,1 个类库? 两个 ASP.NET 网站项目。 这个answer为我解决了这个问题! GetGlobalResourceObject 【参考方案1】:

仅仅因为您引用了项目 B 的 DLL,并不意味着项目 A 的资源管理器知道项目 B 的 App_GlobalResources 目录。

您使用的是网站项目还是 Web 应用程序项目?在后者中,Visual Studio 应该允许您链接 源代码文件(不确定前者,我从未使用过它们)。这是一个鲜为人知但有用的功能,is described here。这样,您可以将项目 B 的资源文件链接到项目 A。

【讨论】:

以上是关于找不到适合指定文化或中性文化的任何资源的主要内容,如果未能解决你的问题,请参考以下文章

FXCop - 找不到引用的程序集

为啥 IndexOf 在匈牙利文化中找不到字符 N 与 Y 的组合?

当我尝试与我的数据库建立连接时出现错误

找不到文件“Microsoft.Windows.Common-Controls,版本=6.0.0.0,文化=*,PublicKeyToken=6595b64144ccf1df,

无法复制文件,找不到路径的一部分

xUnit文化意识测试