情况:
RT.Servers
其中包含一些资源(类型为byte[]
,但我认为这并不重要)我收到MissingManifestResourceException
以下消息:
找不到适合于指定区域性或中性区域性的任何资源。确保在编译时将“ Servers.Resources.resources”正确嵌入或链接到程序集“ RT.Servers”中,或者确保所需的所有附属程序集都可加载并经过完全签名。
我从来没有玩过文化或程序集签名,所以我不知道这里发生了什么。同样,这在使用相同库的另一个项目中也有效。有任何想法吗?
解决此问题所需要做的就是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"
。我是手动完成的,但是运行自定义工具也可以做到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句