最近涉及reflector中反编代码修改,在此积累经验(三)

7 篇文章 0 订阅
5 篇文章 0 订阅

1、问题现象:

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

处理方法:重新添加图片的资源即可


2、问题现象:变量“manager”未声明或从未赋值。

处理方法:

1)先将resources文件转成resx资源文件,命名匹配与之对应的*.cs文件名称,且将其放在与之对应的*.cs代码同一目录(如将WindowsFormsApplication1.Form1.resources编译成Form1.resx)。

经过编译的resources文件转换成resx资源文件的工具如下:

编译工具在C:\Program Files (x86)\Microsoft SDKs\Windows(Win7\Win8),

C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin下 resgen.exe(XP)

CMD命令格式: resgen *.resources *.resx,如下:


注意:生成resx资源文件后排除与之对应的*.cs文件而后重新添加便可将.resx文件映射到项目中。

2)将InitializeComponent方法中的对象manager替换为resources(替换变量名)


3、问题现象:


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

处理方法:这是由于编译时,原先的*.resx文件被编译成*.resources文件,反编译完成后,程序运行找不到原先的资源文件,报错。

因此,应该用上面第2项所说的方法,将*.resources重新恢复成*.resx文件,然后放到正确的位置,一般是错误信息提到的命名空间的目录下,与资源文件具有相同文件名称的 *.cs目录下。


4、问题现象:base.AutoScaleMode = AutoScaleMode.Font; 方法“InitializeComponent”内的代码由设计器生成,不应手动修改。请移除任何更改,然后尝试重新打开设计器。


处理方法:对所有System.Windows.Forms.命名空间里面的控件需要全命名空间的声明。

示例:base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值