使用 64BitCompiler 时 UWP 构建失败

标签 uwp azure-devops .net-native

我有一个 UWP 应用程序,我在托管 Windows 2019 中使用 VS2019 Worker 通过 Azure DevOps 上的 CI/CD 管道构建。最近我的商店提交失败,支持人员告诉我将以下标志添加到我的 CSPROJ 中以解决该问题:

<Use64BitCompiler>true</Use64BitCompiler> 

现在有了这个标志,Azure DevOps 上的构建失败并显示以下行:

C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\microsoft.net.native.compiler\2.2.3\tools\Microsoft.NetNative.targets(801,5): error : ILT0005: 'C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\runtime.win10-x64.microsoft.net.native.compiler\2.2.3\tools\x64\ilc\Tools64\nutc_driver.exe @"d:\a\1\s\Src\MoneyFox.Uwp\obj\x64\Release\ilc\intermediate\MDIL\MoneyFox.Uwp.rsp"' returned exit code 1 [d:\a\1\s\Src\MoneyFox.Uwp\MoneyFox.Uwp.csproj]

有趣的是,我可以毫无问题地在本地构建

这是构建步骤的 YAML:

steps:
- task: VSBuild@1
  displayName: 'Build Windows Project'
  inputs:
    solution: Src/MoneyFox.sln
    msbuildArgs: '/p:AppxPackageDir="$(Build.ArtifactStagingDirectory)\AppxPackages\\"   /p:UapAppxPackageBuildMode=StoreUpload  /p:AppxBundlePlatforms="$(BuildPlatform)" /p:AppxBundle=Always'
    platform: x64
    configuration: '$(BuildConfiguration)'
    clean: true
    msbuildArchitecture: x64

IlcRepo 链接:https://1drv.ms/f/s!Ang3D30bKDOhqNwdQsf0a3q1fAbfSg 存储库:https://github.com/MoneyFox/MoneyFox (ilcRepro 基于分支“native-repro”)

最佳答案

问题被追踪到 CI/CD 的默认代理没有足够的内存 (7GB) 来完成编译。我们已经研究了可以减少这些场景的内存压力的地方,但这项工作在一段时间内不会可用,因为它比错误修复更具结构性。

与此同时,有两件事值得尝试解锁。

  1. 以单线程方式运行优化器。这有助于减少内存压力,因为只有一个副本供优化器考虑。将此添加到您的 csproj 文件中:
  2. 将托管代理升级到 Standard_DS2_v2 或更大版本(这似乎适用于大多数人)

关于使用 64BitCompiler 时 UWP 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341970/

相关文章:

ios - 如何在 VSTS xcode 任务中启用 -allowProvisioningUpdates?

azure - 如何使用 ARM 模板将文件从主存储库上传到文件共享?

c# - 使用 CoreRT/另一个 AOT 编译 .net 核心应用程序

visual-studio - 构建 UWP 项目的发布版本导致错误

c# - Activator.CreateInstance(type) 抛出异常

c# - 外发光圆角 TextBox

mvvm - 如何在 Windows Universal App 10 的页面资源中将 DataTemplate 设置为 ContentControl?

Azure 通知中心 - Windows (WNS) 错误 - WNS 凭据无效

exception - Windows Update 1703 后 UWP 后台传输异常 0x80072EE4

azure - Databricks Repo 与 Azure DevOps - 尝试添加存储库时出现 400 错误请求