只有在 VSTS 托管代理上构建时,具有发布配置和 .net 本机的 UWP 应用程序才会崩溃

UWP App with release configuration and .net native crashes only when build on VSTS hosted agent

我们在 VSTS 上为我们的 UWP 应用实现了构建管道。我们可以在启用 .NET 本机的发布模式下在我们的任何开发人员工作站上构建应用程序,并且该应用程序可以按预期工作。

当我们在 VSTS 中的托管 VS2017 代理上构建相同的应用程序时,该应用程序也构建成功,并且可以在设备上安装生成的 appxbundle 文件。但是,应用程序在显示初始屏幕后立即崩溃。

我看不出我们在 VS2017 中构建应用程序的方式与在 VSTS 中的托管 VS2017 代理上构建应用程序的方式有任何区别。

事件日志在崩溃后立即显示以下内容:

错误应用程序名称:Foo.exe,版本:0.19.1.0,时间戳:0x5a1d8e4a 故障模块名称:Windows.UI.Xaml.dll,版本:10.0.16299.15,时间戳:0xf6706fe0 异常代码:0xc000027b 故障偏移量:0x00000000006e7269 故障进程 ID:0x3044 错误的应用程序启动时间:0x01d368691c216952 错误的应用程序路径:C:\Program Files\WindowsApps\Foo_0.19.1.0_x64__fdr8vq4bd9b2a\Foo.exe 故障模块路径:C:\Windows\System32\Windows.UI.Xaml.dll 报告编号:2655f631-947c-42e5-b3d4-2d2679a93332 错误包全名:Foo_0.19.1.0_x64__fdr8vq4bd9b2a 与包相关的错误应用程序 ID:App

VSTS 中的构建步骤配置如下:

/p:AppxBundlePlatforms="$(BuildPlatform)" /p:AppxPackageDir="$(Build.ArtifactStagingDirectory)\AppxPackages\" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload

如果我使用相同的命令行 运行 它可以在任何开发人员工作站上运行,并且可以安装和启动生成的 appxbundle 而不会出现任何崩溃。

知道有什么区别或我如何才能最好地调试应用程序吗?

此问题是由 VSTS 构建管道中的 App Center(又名 Mobile Center)上传任务引起的。这个任务似乎以一种非常奇怪的方式 "corrupt" 文件。

我使用 App Center CLI 将任务替换为一个任务,上传成功,应用程序不再崩溃。

我在这里发布了另一个根本原因问题: