基本过程如下:
1、用类ResXResourceWriter将字符串资源生成Resx文件,
2、利用ResGen.exe将Resx文件转换成Resources文件,
3、使用al.exe将Resources文件封装为DLL,
4、请问在不修改主程序的前提下,如何才能在主程序中利用CultureInfo与ResourceManager调用改该DLL文件,获取其中的字符串资源。我调用的时候总返回错误:未处理的“System.Resources.MissingManifestResourceException”类型的异常出现在 mscorlib.dll 中。其他信息: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "CreateLanguagePackage.zh-HK.resources" was correctly embedded or linked into assembly "CreateLanguagePackage" at compile time, or that all the satellite assemblies required are loadable and fully signed.  

解决方案 »

  1.   

    本帖最后由 bdmh 于 2011-09-23 13:49:18 编辑
      

  2.   

    这个我知道,我的意思是说比如我有个程序是HelloWord,它已经发布,这个时候我想修改其中的字符串资源,但是我又不能重新去编译HelloWord这个程序,那么我就用以上1-3步的方法做了一个DLL,想用HelloWord在不重新编译的情况下直接点调用DLL,当然前提是DLL调用方法已经写好在HelloWord里面了。我觉得我现在的问题是,我新做得这个资源DLL没有很好的链接到HelloWord里面,或者说这个方法行不通?请指教。
      

  3.   

    我试过,应该是 "CreateLanguagePackage.zh-HK.resources" 错了, ResourceManager里面的baseName填得就是这个,如果这个错了,就会报找不到资源的错误. 
    因为我没用你那工具生成过资源DLL,所以不晓得该DLL里面你调用的资源类的命名空间和类型
    反正baseName的值是命名空间+类名.
    ResourceManager 构造函数的baseName和 assmbly参数都填对了. 你再用刚才生成的ResourceManaager的对象,就可以调用里面的方法了,如果是字符串,就用GetString, 如果是类类型的,就用GetObject, 用错方法也会报错的