无法通过 API 更新 UWP 包航班提交

Can't update UWP package flight submission through API

我正在尝试通过 Package flight management API. I have followed this example 自动提交 UWP 包,我正在采取的步骤如下

  1. 使用可用的客户端凭据检索 API 访问令牌 in here
  2. Create or fetch flight 给航班名
  3. Create or fetch 指定航班内的提交
  4. 使用fileUploadUrl和blob客户端SDK上传包。在此步骤中,我都尝试使用 *.msixupload 并压缩 *.msixupload 文件并上传 zip 存档。
  5. Update 航班提交指定要使用的包名。在这里,我使用 PUT 请求和以下正文。
{
  "flightPackages": [
    {
      "fileName": "MY_APP.msixupload",
      "fileStatus": "PendingUpload",
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None"
    }
  ]
}

我也尝试指定 MY_APP.msixbundle 这是 *.msixupload 包中的一个文件。 7.提交航班

完成所有这些步骤后,提交失败并出现以下错误

"errors": [
            {
                "code": "InvalidParameterValue",
                "details": "File 'MY_APP_0.63.0.0_x86_x64_arm_bundle.msixbundle' not found in archive."
            }
        ],

我认为问题在于我上传包的方式和我使用的文件类型。在我提到的 the example 中,你会发现在 blob 上传的步骤中,他们实际上上传了一个带有以下注释的 zip 存档:

// Upload the zip archive with all new files to the SAS URL returned with the submission.

此外,当他们更新航班提交时,他们使用以下对象

new
{
   fileStatus = "PendingUpload",
   fileName = "package.appx",
}

我在任何地方都找不到的第一个不明显的事情是 API 期望什么样的 ZIP 存档?应该是怎样的结构?我可以将哪些文件放入存档?

第二个问题是 *.appx 不再是 UWP 使用的包格式,而是 *.msix。 那么,我做错了什么?

Here 你可以找到完整的代码。


更新 1

在多次使用我的代码并试图了解它的问题之后,我决定从 official Microsoft sample guide and updated my repo 中复制代码并稍作修改

  1. IngestionClient.GetClientCredentialAccessToken 出于某种原因行不通,所以我用自己的实现替换了它
  2. 添加新包时,我指定了实际 *.msixbundle
  3. 的名称,而不是硬编码 package.appx
packages.Add(new
{
    fileStatus = "PendingUpload",
    fileName = Path.GetFileName(bundlePath),
});

这里的bundlePath是到*.msixbundle

的物理路径

完成此操作后,我 运行 样本原样。不幸的是,效果是一样的——即使我将 *.msixbundle 上传到航班提交的 fileUploadUrl,由于某种原因,合作伙伴中心不会检测到该包,一切都将保持不变。

令人沮丧的是,即使是官方示例也无法正常工作。此刻我完全卡住了。

我知道这个问题很老了,但也许它可以帮助遇到同样问题的人。

  • msixupload 包必须打包成 ZIP 文件。 ZIP 文件是要上传到 Azure Blob 存储的文件。

  • 此处的错误信息表明合作伙伴中心正在寻找 .msixbundle,但您上传了 .msixupload 包.我很确定一旦使用 msixbundle 更新航班,您需要继续在该航班上运送捆绑包。尝试 运行 您在新创建的没有包裹的航班上的代码。如果这也不起作用,请生成 .msixbundle 并尝试上传它(打包在 ZIP 中)。