微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MissingManifestResourceException 是什么意思以及如何解决它?

如何解决MissingManifestResourceException 是什么意思以及如何解决它?

解决此问题所需要做的就是右键单击Resources.resx解决方案资源管理器中的文件,然后单击 运行自定义工具 。这将重新生成自动生成Resources.Designer.cs文件

如果手动将 .resx 文件添加到项目中,则文件自定义工具属性必须设置为“ResXFileCodeGenerator”。

问题是由于命名空间不匹配,如果您在项目设置中更改程序集的“认命名空间”,就会出现这种情况。(我把它从(以前)改成了"Servers"(现在)"RT.Servers"。)

自动生成代码Resources.Designer.cs,有如下代码

internal static global::System.Resources.ResourceManager ResourceManager {
    get {
        if (object.ReferenceEquals(resourceMan, null)) {
            global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Servers.Resources", typeof(Resources).Assembly);
            resourceMan = temp;
        }
        return resourceMan;
    }
}

文字字符串"Servers.Resources"必须更改为"RT.Servers.Resources". 我手动完成了这项工作,但运行自定义工具同样可以做得很好。

解决方法

情况:

  • 我有一个名为 的类库RT.Servers,其中包含一些资源(类型为byte[],但我认为这并不重要)
  • 同一个类库包含一个返回这些资源之一的方法
  • 我有一个简单的程序(引用了那个库),它只调用那个单一的方法

我收到MissingManifestResourceException以下消息:

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

我从来没有玩过文化,也没有玩过大会签名,所以我不知道这里发生了什么。此外,这适用于使用相同库的另一个项目。有任何想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。