您好我有一个解决方案,我刚从.Net 3.5 / MVC1 / VS2008迁移到.Net 4.5 / MVC4 / VS2012
大部分工作都运行良好,但我有一个字符串资源文件问题
我的解决方案有3个项目,其中一个是核心项目,另一个项目依赖于核心。
在每个项目中,我都有一个以下列模式命名的字符串文件:
核心项目 - 文件名是 的 Strings.resx
Dependency1项目 - 文件名是 的 Dependency1Strings.resx
Dependency2项目 - 文件名是 的 Dependency2Strings.resx
每个文件都包含与特定项目相关的字符串。
当解决方案加载时,我使用以下代码为每个项目创建一个ResourceManager(示例使用Dependency2):
ResourceManager manager = new ResourceManager("Dependency2.Dependency2Strings", typeof(Dependency2Strings).Assembly);
稍后我尝试拨打manager.GetString(messageName,ClientCulture)
我收到一个FileNotFoundException,指出无法找到 Dependency2.resources.dll 文件。
奇怪的是,它为 Dependency2.resources.dll 列出的PublicToken与 Dependency2.dll 的PublicKey相同。
我的问题是,是否有人知道应该生成 Dependency2.resources.dll 的原因和位置(也许这是一个新设置)。在以前版本的.Net中,这段代码没有问题。
这仅适用于Dependency项目,而不适用于Core项目。看起来.Net几乎让这个项目结构与Satelite Assembly结构混淆。
答案 0 :(得分:0)
因此经过大量的尝试和错误后,我得到了一个妥协的解决方案。
我将所有资源字符串放在同一个resx文件中,然后让所有3个资源管理器引用同一个文件。
这很有用!