我有两个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项目。


当前回答

我是这样解决的:

右键点击资源文件,然后选择属性 将“Build Action”属性编译为“Embedded Resource” 然后构建并运行

它工作得很完美。

其他回答

在我的例子中,我试图将一个Form从一个项目迁移到另一个项目。结果我只忘记添加Form。Resx到新项目。在窗体中,我使用了一些图标,因此它依赖于资源。

我是这样解决的:

右键点击资源文件,然后选择属性 将“Build Action”属性编译为“Embedded Resource” 然后构建并运行

它工作得很完美。

一种方法是将共享的类/资源放在单独的类库项目中,并在两个网站中引用它们。

其他答案都不能帮我解决这个问题。我将许多窗体和控件从一个程序集移动到另一个程序集,修复了所有的名称空间,然后遇到了这个问题。

为了将移动的控件和表单与其他控件分开,我将它们放在一个子文件夹中。按照其他答案中的建议更新了一个资源引用。IDE警告我文件路径与名称空间不匹配,但这不是错误,所以我最初忽略了它。

当没有什么似乎可以修复它为我,我不知道有什么更好的尝试,我终于移动了他们的子文件夹的控件和形式(这不是在命名空间中表示),问题消失了。

显然,WinForms中仍然存在一些对文件夹结构的硬依赖。

只是另一个案例。我用两个项目复制了一个解决方案,部分在Windows资源管理器中重命名它们(文件夹名,.sln和.csproj文件名),部分在Visual Studio中使用大量的查找和替换操作(名称空间等)。尽管如此,执行干事所说的例外情况仍然发生了。我发现程序集和命名空间名称仍然很旧。

虽然项目和其他所有内容都已命名为OfficeStyle,但程序集名称和默认名称空间仍然命名为Linckus。

在此修正之后,一切都恢复正常,编译并运行:)