尝试通过资源管理器检索资源时缺少清单错误

时间:2014-07-23 09:49:47

标签: c# embedded-resource

我遇到了一些动态获取资源的麻烦,因为我收到“Missing manifest”错误。我查了几个可能的原因并做了那里写的但到目前为止没有任何效果。

目前我遇到这种情况: 我正在尝试访问的resx文件是:“Resources / Messages.resx”(因此在非标准文件夹中。

我正在使用的代码是:

ResourceManager resourceManager = new ResourceManager("Resources.Messages", this.GetType().Assembly);
resourceManager.GetString("ResourceText" + MessageType + "Subject")

messageType是一个字符串。在第二行,我收到错误消息。

资源文件的状态为:

  • 构建Aciton:嵌入式资源
  • 自定义工具:PublicResXFileCodeGenerator
  • Access Modifier Public

resfile有两个变体:Messages.res和Messages.de.resx,每行具有相同的名称,并且具有相同的常规属性(“GetString”也最终尝试访问正确的名称)。

所以我的问题是我在那里做错了什么,我该怎么做才能纠正这个问题?

1 个答案:

答案 0 :(得分:3)

发现问题。对于新的ResourceManager,不仅必须给出资源文件的名称空间,还要给出默认名称空间。因此,如果应用程序具有默认名称空间:MyApplication.MyServerApp,则代替" Resources.Messages"必须放入:" MyApplication.MyServerApp.Resources.Messages"导致以下功能源代码:

ResourceManager resourceManager = new ResourceManager("MyApplication.MyServerApp.Resources.Messages", this.GetType().Assembly);
resourceManager.GetString("ResourceText" + MessageType + "Subject")