嗨,我有一个解决方案,我刚从.Net 3.5/MVC1/ to 2008迁移到.Net 4.5/MVC1 4/to 2012。
大多数情况下运行良好,但我遇到了字符串资源文件问题。
我的解决方案有3个项目,其中一个是核心,另一个是依赖于核心。
在每个项目中,我都有一个字符串文件,名称如下:
核心项目-文件名为Strings.resx
文件名为Dependency1Strings.resx Dependency1 project
文件名为Dependency2Strings.resx Dependency2 project
这些文件中的每一个都有与特定项目相关的字符串。
当解决方案加载时,我使用以下代码为每个项目创建一个ResourceManager (示例使用Dependency2):
ResourceManager manager = new ResourceManager("Dependency2.Dependency2Strings", typeof(Dependency2Strings).Assembly);稍后当我试图调用manager.GetString(messageName,ClientCulture)时
我得到一个FileNotFoundException,说明文件FileNotFoundException无法定位。
奇怪的是,它为Dependency2.resources.dll列出的PublicToken与用于Dependency2.dll.的PublicKey相同。
我的问题是,是否有人知道Dependency2.resources.dll应该生成的原因和位置(可能是一个新的设置)。在.Net的早期版本中,这段代码没有问题。
这只发生在依赖项目,而不是核心项目。它看起来几乎是.Net混淆了这个项目结构和一个卫星组装结构。
发布于 2012-12-03 20:44:41
因此,经过多次尝试和错误之后,我找到了一个折中的解决方案。
我将所有资源字符串放入同一个resx文件中,然后让所有3个资源分发器引用同一个文件。
这起作用了!
https://stackoverflow.com/questions/13588329
复制相似问题