Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未使用.NET附属程序集中的资源_C#_.net_Dll_Localization - Fatal编程技术网

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

C# 未使用.NET附属程序集中的资源,c#,.net,dll,localization,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”

我正在尝试创建一个批处理脚本来生成资源文件的本地化版本。在各种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”/embed:“My.Operator.Resources\obj\Resources.ja JP.Resources”

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

在VisualStudio中查看输出,它加载dll时没有错误

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

Fusion日志对此问题保持沉默(即,没有与资源DLL相关的错误)

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


谢谢。

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

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


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

如何在测试程序中设置当前区域性?我正在设置CurrentThred CurrentCulture和CurrentUiCulture。我应该注意,如果我使用Visua生成的附属程序集lStudio我看到了已翻译的资源。我无法发现VisualStudio使用的命令(用于resgenand al0)与我的脚本中使用的命令之间的主要区别。