【发布时间】:2019-10-01 20:20:24
【问题描述】:
我完全按照以下指南中的内容进行操作:
我正在使用隐藏代码直接调用本地化类,如示例所示,并且运行良好。
但是如果我在调试模式下运行它,它会给我 File IO NotFound 异常,说 Invalid Image。 (我不知道为什么)
指南和谷歌告诉我我需要关闭 Android 项目中的快速部署,我确实这样做了。而且我仍然遇到同样的异常。
我还按照指南通过加载程序集来尝试调试,以查看资源文件是否找到并且没有问题。
有人遇到同样的问题吗?
我的资源文件位于我共享的 .net 标准 2.0 项目中。 我正在使用最新的 Xamarin Form + Visual Studio 2017。
=====================
编辑:
我发现当它尝试加载本地化字符串时,它会从位于 android/bin/debug 文件夹中的 dll 文件中查找我的设备语言 en-CA:en-CA/{我的项目程序集名称}。资源.dll
但是,我只有两个资源文件:
中性语言,命名为 ClientResource.resx
日语,名为ClientResource.ja-JP.resx
我检查了调试文件夹中的所有文件,资源dll文件只存在于ja-JP/{我的项目程序集名称}.resources.dll下
因此,如果我将设备语言更改为日语,它将在调试模式下正常工作。 但是,任何其他语言都会抛出异常,而不是使用中性语言。
知道为什么它不使用中性语言吗?
【问题讨论】:
-
您下载了这个演示并测试了您的环境吗?如果你仍然会有这个错误信息? developer.xamarin.com/samples/xamarin-forms/…我在实验室运行这个demo测试,正常。 Xamarin.forms 版本为 3.4.0.1008975,Visual Studio Enterprise 2017 版本为 15.9.4;我在 android 7.0 和 android 8.0 中运行 demo,它们都可以。
标签: android xamarin.forms localization