0

我正在使用一个 Azure Pipeline,当我提交到我的 GitHub 存储库时它会自动运行。.yml 文件生成一个 .msixupload 文件(用于 UWP)以上传到 Microsoft Store。但是,我无法上传生成的 .msixupload 文件,因为 .appxmanifest 文件中的版本号永远不会更改,并且我正在尝试为现有应用程序构建更新。每次运行 Azure Pipeline 时,如何增加版本号?

我试过添加

<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>

到此处描述的 .appxmanifest 文件:如何自动增加软件包版本号?,但这并没有任何区别。

4

1 回答 1

1

您可以使用 powershell 脚本更改 appxmanifest 文件中的版本值。请参见下面的示例:

在您的 yaml 管道中。您可以设置如下变量:有关表达式的更多信息,请参见此处。counter

variables:
  major: 1
  minor: 0
  build: $(Build.BuildId)
  version:  $[counter(variables['major'], 0)]  

然后添加 powershell 任务以在脚本下面运行以更新版本值:

  - powershell: |
       [Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq")
       $path = "Msix/Package.appxmanifest"
       $doc = [System.Xml.Linq.XDocument]::Load($path)
       $xName =
         [System.Xml.Linq.XName]
           "{http://schemas.microsoft.com/appx/manifest/foundation/windows10}Identity"
       $doc.Root.Element($xName).Attribute("Version").Value =
         "$(major).$(minor).$(build).$(revision)";
       $doc.Save($path)
      displayName: 'Version Package Manifest'

请查看此文档以获取更多信息。

由于 appxmanifest 文件只是基于文本的 XML 文件。您还可以使用扩展工具Magic Chunks 任务来更改 appxmanifest 文件中的版本值。例如检查这个线程

于 2021-01-20T07:51:00.923 回答