未使用.NET附属程序集中的资源

时间:2017-01-30 16:41:52

标签: c# .net dll localization

我正在尝试创建批处理脚本以生成资源文件的本地化版本。在各种MSDN文章之后,我使用resgen编译资源

resgen.exe" My.Resources \ resources.ja-JP.resx" " My.Resources \ OBJ \ resources.ja-JP.resources"

然后我用Al创建dll

Al.exe工具" / culture:ja-JP /keyfile:"ResourceKey.snk" /out:"bin\ja-JP\My.Resources.resources.dll" / platform:x64 /template:"bin\My.Resources.resources.dll" /嵌入:" My.Operator.Resources \ OBJ \ resources.ja-JP.resources"

所有这些都可以正常工作并产生一个带符号的dll。但是,当我使用测试程序对其进行测试时(再次从MSDN文章中获取),它找不到本地化资源,而是显示通用语言回退。 (如果我将本地化的dll替换为Visual Studio中生成的一个,则一切正常)

查看visual studio中的输出,它加载的dll没有错误。

查看调试器中的ResourceManager对象,它似乎已经加载了两次回退资源(但这可能无关紧要)

Fusion日志对此事保持沉默(即没有与资源dll相关的错误。

有人对我做错了什么有任何建议吗?有没有办法说服.Net提供有关它忽略本地化DLL的原因的进一步信息?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为/ template切换到al.exe应该指定应用程序的可执行文件。

看起来您已经指定了中性资源文件。

如果这不是错误,我建议您使用msbuild从命令行构建项目,并检查它使用的确切命令行。