我正在尝试创建批处理脚本以生成资源文件的本地化版本。在各种MSDN文章之后,我使用resgen编译资源
resgen.exe" My.Resources \ resources.ja-JP.resx" " My.Resources \ OBJ \ resources.ja-JP.resources"
然后我用Al创建dllAl.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的原因的进一步信息?
感谢。
答案 0 :(得分:0)
我认为/ template切换到al.exe应该指定应用程序的可执行文件。
看起来您已经指定了中性资源文件。
如果这不是错误,我建议您使用msbuild从命令行构建项目,并检查它使用的确切命令行。