C#中:什么是MissingManifestResourceException意义,以及如何解决它?
.net 资源resources 清单manifest 文化culture
的情况: 我有一个类库,叫RT.Servers,含有少量的资源的类型(byte[],但我不认为这很重要) 该类库包含了返回这些资源之一 我有一个简单的程序(用的引用,该库),只有调用 我得到一个MissingManifestResourceException与 无法找到任何资源 适合于指定的区域性 或中性文化。确保 “Servers.Resources.resources”被 正确嵌入或链接到 集结号“RT.Servers” 或者,所有的附属程序集 需要都可加载并充分 签名。 我从来没有玩过各地的文化 CodeGo.net,或集签名,所以我不知道这是怎么回事。此外,这部作品在另一个项目库。任何想法?
本文地址 :CodeGo.net/77705/
-------------------------------------------------------------------------------------------------------------------------
1. 所有我需要做些什么来解决这个问题的方法是右键单击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"。我这样做手工,但在运行自定义工具将有同样出色地完成它。
2. 我只是碰到这个问题的今天,我发现这个微软帮助和支持页面,实际上确实解决问题的工作。 我有一对夫妇委托我的文件的顶部 CodeGo.net,在全局和所有突然我得到一个MissingManifestResourceException运行程序时,在这条线:
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
然后我提出的代表进入了错误。最后,我把代表们的唯一类在该文件中,错误走了,但我不想在这个类代表或 然后,我碰到上面的那个链接,里面说 要解决此问题,将所有的其他类的定义,使他们在窗体的类定义后出现。 我把代表(我不会考虑“类定义”),在该文件的底部,本地和程序之外没有得到MissingManifestResourceException了。什么是刺激性的错误。但是,这似乎是一个比修改自动生成的代码更加的解决方案:)
3. 我有问题,运行自定义工具命令所建议的Timwi在我的情况没有帮助。 然而,它到正确的方向,我在。resx文件的内容结束了。在这里,我注意到一个差异到另一个。resx文件,没有问题。 在我的情况,我不得不改变属性“生成操作”,从“资源”到“嵌入的资源”。 我最好的原因的猜测是,我有。RESX在一个库,它从另一个应用程序。我的应用程序没有自己的resx文件,因此它不得不从图书馆之一-当它嵌入在图书馆,而不是“独立”,这是唯一可用的。
4. 我碰到了类似的问题,虽然我知道这不是OP的了,我会张贴在这里,这样,如果其他人碰到这个问题运行在未来的答案将可用。 如果您在设计器类前添加一个类,你会得到一个MissingManifestResourceException异常(错误或警告) Visual Studio的规定,优先类文件。 对于(略)看到这个帖子。
5. 我得到了MissingManifestResourceException错误后,我移植了我的项目从VS2005到VS2010。我没有包含我的Form类文件中定义的任何其他类。我也有我的resx资源文件设置正确。没有工作。 所以我删除了resx文件和再生他们。所有好现在。
6. 另请参阅:MissingManifestResourceException建设使用MSBuild后运行测试时(mresource具有路径在清单中。) 我再说一遍答案在这里只是 这似乎增加了项目文件修复它:
$(RootNamespace).Properties.Resources.resources
即使在项目文件中嵌入的资源条目看起来像这样:
ResXFileCodeGenerator
Resources.Designer.cs
$(RootNamespace).Properties.Resources.resources
这是在详细: 需要注意的是我们。resx文件,但错误仍然出现发生。
7. 我为我的Web应用程序(使用VS2012发布函数)。我得到上面的错误。我尝试了所有的建议,但古怪的变化“生成操作”到“内容”的伎俩!
8. 从微软支持页面: 发生此问题,如果存在于您创建的具有不适当的文件,这个问题通常发生,如果你手动创建一个附属程序集。资源文件的附属程序集的本地化资源。 要解决这个问题,当您运行Resgen.exe的指定。资源文件的文件。当你指定。资源文件的文件,请确保该文件开始与您的应用程序。例如,运行在微软的Visual Studio。提示创建一个具有应用程序的在文件的开头。资源文件
Resgen strings.CultureIdentifier.resx
MyApp.strings.CultureIdentifier.resources
阅读(3363) | 评论(0) | 转发(0) |