我有一个场景,我需要在多个项目类型(Web 前端、WCF、Windows 服务等)之间共享本地化,所以我的想法是创建一个本地化程序集,我可以在其中嵌入所有 resx 文件,然后随时添加/修改这些我只需要重新部署一个 dll 来更新我的所有应用程序。
因此,为了进行测试,我创建了一个类库项目并将其命名为 TestLocalization。我向它添加了一个名为 LocalizationManager 的类,它现在只是一个存根,(我计划稍后在其中放入一些实用方法)。然后我添加了两个 resx 文件,每个文件都有一个测试条目。我将一个文件命名为 Resource.resx,另一个命名为 Resource.fr.resx。我验证了 resx 文件的 Build Action 设置为 'Embedded Resource' 然后编译它并尝试使用以下代码调用它:
Assembly assembly = typeof(TestLocalization.LocalizationManager).Assembly;
ResourceManager rm = new ResourceManager("Resource", assembly);
string str = rm.GetString("AKey");
它给了我以下错误:
“找不到适合指定区域性或中性区域性的任何资源。确保“Resource.resources”在编译时已正确嵌入或链接到程序集“TestLocalization”中,或者所需的所有附属程序集都是可加载和完全签名的。 "
我在这里做错了什么?谢谢!