【问题标题】:How can I auto-increment the package version number for a .msixupload file created in an Azure Pipeline?如何自动增加在 Azure Pipeline 中创建的 .msixupload 文件的包版本号?
【发布时间】:2021-01-20 17:31:44
【问题描述】:

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

我已经尝试添加

<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>

到此处描述的 .appxmanifest 文件:How do I auto increment the package version number?,但这没有任何区别。

【问题讨论】:

    标签: uwp azure-pipelines versioning msix appxmanifest


    【解决方案1】:

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

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

    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'
    

    请查看this document了解更多信息。

    因为 appxmanifest 文件只是基于文本的 XML 文件。您还可以使用扩展工具Magic Chunks task 更改 appxmanifest 文件中的版本值。以this thread 为例。

    【讨论】:

    • 这似乎没有效果。执行 Assembly Info 任务后,生成的 .msixupload 文件的名称仍然反映了应用清单中的版本号,该版本号没有更改。尝试将 .msixupload 文件上传到 Microsoft Store 时,显示以下错误:“您提供了两个全名为 的包,它们具有不同的内容。请删除其中一个包,或将当前包版本增加到继续。”仅更改文件名也不起作用。
    • @user2052677 您可以编写 powershell 脚本来更改版本值或使用扩展替换任务(Magic Chunks)。我更新了上面的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2023-03-14
    • 2020-06-24
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多