UWP:未正确部署语言的资源文件

我的Universal-Windows-App存在问题:我正在为用户提供更改应用语言的选项。

为此,我已经为每种语言创建了一个“Ressources.resw”文件,我的XAML代码通过x:UID= part来引用资源。 通过primaryLanguageOverride更改语言这在我的环境中正常工作。 但是,如果我通过Store->Create App Packages部署Store->Create App Packages ,然后尝试在(不同的)Windows-10计算机上侧载应用程序,则语言更改无法正确反映。 例如,日期格式正在正确更改,但指向资源文件的属性未正确更改。

但是:如果用户安装了相应的Windows-Language-Pack,则该应用程序正常运行。 我的猜测是,Windows将检查它将使用系统上安装的语言部署的语言资源文件:

在此处输入图像描述

我怎么能避免这个?

但是,如果我通过Store-> Create App Packages部署应用程序,然后尝试在(不同的)Windows-10计算机上侧载应用程序,则语言更改无法正确反映。
但是:如果用户安装了相应的Windows-Language-Pack,则该应用程序正常运行。 我的猜测是,Windows将检查它将使用系统上安装的语言部署的语言资源文件:

如果我将“生成应用程序包”设置“始终”“如果需要” ,我可以重现此行为,正如您所说,只有当用户安装了相应的Windows语言包时,该应用程序才能正常工作精细。

之所以如此,是因为如果我们将“生成应用程序包”设置“始终”“如果需要” ,它将创建应用程序包。 这意味着它会将您的应用程序切换到不同的部分以优化下载。 仅下载与设备相关的部件。 例如,如果有不同分辨率的资产,则只下载适合该设备的资产。 对于语言来说,它只会下载与设备语言相关的资源文件。 因此,如果您尝试更改语言,它将失败仍然会退回到相同的基本语言,因为其他语言没有安装。 因此,如果您没有安装相应的Windows-Language-Pack,则应用程序将不会显示指向资源文件的该属性的相关语言。

有关更多信息,请尝试参考此博客 。

我怎么能避免这个?

如果你想避免这种情况,解决方法是在创建应用程序包时将“生成应用程序包”设置“从不” ,如下所示, 我已经在我身边测试过,它运行正常在此处输入图像描述