未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“xxxx.resources”正确嵌入或链接到程序集“xxx”

oldcsdn 2009-04-23 02:39:07
你好!我反编译了一个网上的asp.net控件程序集生成了一套代码,编译通过了,但是运行时出现错误:

System.Resources.MissingManifestResourceException: 未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“xxxx.Properties.Resources.resources”正确嵌入或链接到程序集“xxxx”,或者确保所有需要的附属程序集都可加载并已进行了完全签名。

我怀疑是反编译后资源文件位置或者是代码不正确,能帮我指导下反编译后的代码怎样处理资源文件才能让代码正常执行吗?
...全文
7935 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xielei4552 2012-03-19
  • 打赏
  • 举报
回复
我也遇到了,在项目下找到obj文件夹,看下面resource文件的名(不要resources),
xx.MyResource.CulInfo
dengqingqing2008 2012-03-16
  • 打赏
  • 举报
回复
我这是这个问题
zhs1931 2011-11-29
  • 打赏
  • 举报
回复
遇到了。6楼ok。
jianchang 2011-01-30
  • 打赏
  • 举报
回复
我的问题解决了,原来是名称空间名包含了"校准"的字,将这两个字改为其它任何中文字都没有问题的.
jianchang 2011-01-27
  • 打赏
  • 举报
回复
我也遇到类这个问题了.谢谢!
zycatj 2010-12-27
  • 打赏
  • 举报
回复
我觉得最重要的问题就是类文件中可以有namespace来描述位置

relex1008 2010-04-19
  • 打赏
  • 举报
回复
遇到类似问题,查看
dongdongming1 2010-04-07
  • 打赏
  • 举报
回复
没看懂 顶下
mybossmyway 2010-02-22
  • 打赏
  • 举报
回复
我觉得最重要的问题就是类文件中可以有namespace来描述位置

而资源文件中并没有这行代码,只能靠真正的位置,这才是关键

很受启发,谢谢
antony1029 2010-01-14
  • 打赏
  • 举报
回复
UP
vcthugo 2010-01-07
  • 打赏
  • 举报
回复
转载http://hi.baidu.com/heiru/blog/item/fb62922359ef0c4dad34de96.html
今天在测试一个工程的时候,突然遇到了这样一个问题:

错误信息:System.Resources.MissingManifestResourceException: 未能找到任何适合于指定的区域或非特定区域性的资源。请确保在编译时已将“****.****.Resource.resources”正确嵌入或链接到程序集"****",或者确保所有需要的附属程序集都可加载并已进行了完全签名。

在网上搜索了N久都没看到几篇解决的文章,最后在不懈的努力下终于解决了,所以决定写下解决方法方便以后遇到同样问题的朋友:

其实这个错误的主要问题就是没有找到需要的资源文件(该文件为Resources.resx),
引用该文件的地方就是
System.Resources.ResourceManager manager = new System.Resources.ResourceManager("×××.Resources", typeof(Resources).Assembly);
而导致错误的原因就是"×××.Resources"的配置错误

解决方法:首先查看工程中时候存在Resources.resx相关的文件,
找到它在工程中的位置(不如说一般都是在:工程名.Properties 命名空间下),
最后更改配置为new System.Resources.ResourceManager("工程名.Properties.Resources", typeof(Resources).Assembly);

续:

我这里在举个详细的例子,以便能够更明白哈

首先,一个容器(不管是Form,或是Panel也好),如果与其配套一个资源文件(以后缀名为.resx),则这2个文件应是在同一个命名空间下,才能相互使用

举个最特殊的例子

比如说一个工程名叫Test.Tname

其下有一个文件夹叫aaa(文件夹名字随便,没有关系)

文件夹aaa下有一个类文件叫Form1.cs,其命名空间为:Test.Tname(注意:命名空间才是重要的位置信息)

现在也有一个资源文件叫Form1.resx

(默认此资源文件是没有问题的,但是在特别的情况下,此文件就不会再正确的位置,导致出现如题的异常信息,比如说我反编译一个工程,自动生成的资源文件的位置就有问题)。

在Form1.cs中有句代码是需要资源文件的

ResourceManager manager = new ResourceManager(typeof(Test.Tname.Form1));

这里就注意了,如果Form1.cs类文件与Form1.resx资源文件是分开的话,

那么Form1.resx资源文件应放在哪个地方,程序才能找到他呢?

首先我们看哈Form1.cs类文件的命名空间为Test.Tname。

而资源文件Form1.resx中并没有命名空间的描述,所以只有靠位置来表示

再看下我们的工程名称:Test.Tname很好,它跟Form1.cs类文件的命名空间相同

所以我们就把Form1.resx资源文件放在工程的根目录下面

问题解决了,呵呵

其实我觉得最重要的问题就是类文件中可以有namespace来描述位置

而资源文件中并没有这行代码,只能靠真正的位置,这才是关键
Jinglecat 2009-04-24
  • 打赏
  • 举报
回复
1.
看看代码中哪里引用了嵌入资源,然后检查这个被引用的资源是否真的存在于项目中,并且编译方式为 Embedded

2.
如果是自动的强类型资源,确保它的 modifier (public/private/internal...) 是足够被访问的

3.
[Quote=引用 4 楼 camelials 的回复:]
是asp.net控件吗?winform里确实需要将一些资源文件文件(比如图片)build到dll里.
asp.net里好像没有这样的资源文件一说吧.
[/Quote]

ASP.NET 有!
BossFriday 2009-04-24
  • 打赏
  • 举报
回复
是asp.net控件吗?winform里确实需要将一些资源文件文件(比如图片)build到dll里.
asp.net里好像没有这样的资源文件一说吧.
悔说话的哑巴 2009-04-23
  • 打赏
  • 举报
回复
帮顶
zftow110 2009-04-23
  • 打赏
  • 举报
回复
是不是未将其它DLL引入
itcrazyman 2009-04-23
  • 打赏
  • 举报
回复
mark up 帮顶

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧