使用64BitCompiler时UWP构建失败

时间:2019-05-28 12:09:47

标签: uwp azure-devops .net-native

我有一个UWP应用程序,该应用程序是通过CI / CD管道在带有VS2019 Worker的托管Windows 2019中的Azure DevOps上构建的。截至最近,我的商店提交失败,支持人员告诉我在我的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链接:documentation 储存库:https://1drv.ms/f/s!Ang3D30bKDOhqNwdQsf0a3q1fAbfSg (ilcRepro基于“ native-repro”分支)

1 个答案:

答案 0 :(得分:1)

该问题已归结为CI / CD的默认代理,该代理没有足够的内存(7GB)来完成编译。我们已经研究了在这些情况下可以减少内存压力的地方,但是该工作暂时无法使用,因为它比错误修复更具结构性。

同时,有两件事值得尝试畅通无阻。

  1. 以单线程方式运行优化器。通过仅将一份副本提交给优化器来考虑,这有助于减少内存压力。将此添加到您的csproj文件:
  2. 将托管代理升级到Standard_DS2_v2或更高版本(似乎对大多数人都适用)