具有资源大小的UWP构建问题(.PRI文件问题)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有资源大小的UWP构建问题(.PRI文件问题)相关的知识,希望对你有一定的参考价值。

在我的UWP项目中,大量使用字符串资源超过20种语言,每种语言都有50k +键值。它还具有许多屏幕和控件。

直到一定的限制,没有任何构建问题。但是一旦我添加了3k个密钥,MSBuild就会出现未指定的构建错误。奇怪的是,如果我减少一些密钥,再次可以正常工作。

构建命令

MSBuild.exe MyProject.sln /p:AppxBundlePlatforms="x64" /p:AppxPackageDir="$(Build.ArtifactStagingDirectory)MyProjectAppxPackages\" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=SideloadOnly /p:UseDotNetNativeToolchain=false /p:Use64BitCompiler=true

错误

error PRI175 : 0x80004004 - Processing Resources failed with error : Operation aborted [D:VSTS Agentvsts-agent-win-x86-2.155.1\_work24sMyProject.csproj]
  GENERATEPROJECTPRIFILE : error PRI222: 0xdef0000f - Unspecified error occurred. [D:VSTS Agentvsts-agent-win-x86-2.155.1\_work24sMyProject.csproj]
    1654 Warning(s)
    2 Error(s)

一段时间后确定PRI文件存在问题。根据MS Documentation PRI文件大小,lim是64kb。但这对我来说一直有效,直到18mb(是的!我的resources.pri文件大小为18.6mb,并且仍然可以正常工作)。

如前所述,如果我添加更多键,resources.pri文件将变为21mb,并且总是会失败(使用禁用的.Net Native Toolchain发布版本)

幸运的是,它使用.Net Native Toolchain enabled成功构建。

是否有解决此问题的建议?

提前感谢!

答案

根据MS Documentation PRI文件大小,石灰为64kb。

非常感谢您报告此问题,我已确认文档中的64KB限制不正确,它将被更新。

如前所述,如果我再添加一些键,则resources.pri文件变为21mb并始终失败(发布版本已禁用).Net本机工具链)

幸运的是,它在启用.Net Native Toolchain的情况下成功构建。

对于大约21mb的大小,似乎您可能在PRI文件中允许的项目数量上达到了上限。

如果将来添加更多的字符串,也不确定.Net本机版本

由于我们会定期进行审查,并且会为PRI文件提供额外的容量,因此,如果您仍然希望将PRI文件增加到大于21mb的更大文件,请尝试使用最新的内部预览版本(20H1)看看它是否有助于减轻您所看到的?

谢谢。

以上是关于具有资源大小的UWP构建问题(.PRI文件问题)的主要内容,如果未能解决你的问题,请参考以下文章

如何更改UWP app文件夹名称或路径?

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

Maven:资源二进制文件在构建后更改文件大小

如何在 UWP 类库中使用 XAML 静态资源和设计时数据

UWP:有效负载包含两个或多个具有相同目标路径的文件

如何从excel创建本地化资源文件?在 UWP 中