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

Fik*_*kLi 5 c# xaml windows-store-apps uwp

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

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

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

在此输入图像描述

我怎么能避免这个?

Amy*_*SFT 13

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

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

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

有关详细信息,请尝试参考此博客.

我怎么能避免这个?

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