我有两个ASP。NET Web项目(ProjectA和projecb)。当ProjectA中的类正在实例化ProjectB中的一个类时,它使用了一个资源文件Blah。resx,我得到这个错误:
一个System.Resources类型的异常。mscorlib.dll中出现了MissingManifestResourceException',但在用户代码中没有处理。
无法找到适用于指定区域性或中性区域性的任何资源。确保“资源。等等。”资源“正确嵌入或链接到程序集”App_GlobalResources。Sn_flri6”,或者所有所需的附属程序集都是可加载的并具有全符号。
是什么导致的?
在微软的网站上有一篇关于http://support.microsoft.com/kb/318603的文章,它建议:
要解决此问题,请移动所有其他类定义,使它们出现在表单的类定义之后。
这是一个Windows窗体项目的解决方案,我不确定这是否也适用于Web项目。
对我来说是这样的。在MyStrings.Designer.cs文件中:
global::System.Resources.ResourceManager temp =
new global::System.Resources.ResourceManager(
"MyApplication.MyProject", typeof(MyStrings).Assembly);
我以为MyApplication。MyProject引用类的命名空间,而不是文件的目录。我把文件放在一个名为Resources的子目录中,但名称空间没有反映这一点。
我把它改成
global::System.Resources.ResourceManager temp =
new global::System.Resources.ResourceManager(
"MyApplication.MyProject.Resources", typeof(MyStrings).Assembly);
它成功了!(我甚至不需要更新名称空间!)