如何解决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 举报,一经查实,本站将立刻删除。