C#反编译中资源文件的恢复
C#反编译一般使用Reflector。
此时工程中的资源文件被反编译为二进制的.resources文件,这个文件就是.resx。
需要通过VS SDK中的工具ResGen.exe恢复,命令行是 ResGen ***.resources ***.resx,就可以恢复。
将此文件加到工程中,如有下面一个错误:
错误信息:System.Resources.MissingManifestResourceException:未能找到任何适合于指定的区域或非特定区域性的资源。请确保在编译时已将“****.****.Resource.resources”正确嵌入或链接到程序集"****",或者确保所有需要的附属程序集都可加载并已进行了完全签名。
这个错误的主要问题就是没有找到需要的资源文件(该文件为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);