嗨,我有一个解决方案,我刚刚从 .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 中,此代码没有问题。
这只发生在依赖项目上,而不是核心项目。看起来.Net 将这个项目结构与卫星组装结构混淆了。