Azure Devops 构建管道 - 单击一次应用程序发布版本控制策略
Azure Devops Build Pipeline - Click Once Application Release Versioning Strategy
当有人在 dev 分支中推送时,将发布一个新的测试版本。现在开发人员必须手动指定发布版本,并且所需的最低版本会自动设置为发布版本 - 因此一旦应用程序被强制更新点击。
理想情况下,开发人员不需要指定发布版本,因为它应该是一个滚动版本,并且总是比上一个版本晚一个版本号。我可以编写一个 Powershell 脚本来检查最新版本并增加构建管道中的版本号 - 所以我们有一个增量构建。但这有一个缺点,即在源代码控制系统中不检查发布的版本号。
我该如何解决这个问题?
But this has the drawback that the published version number is not
checked in the source control system. How can I approach this issue?
clickonce 应用程序的发布版本由 xx.csproj
中定义的 ApplicationRevision
和 ApplicationVersion
属性控制。
在 Azure devops 服务中,我们总是通过使用 Global Properties 方式将新值传递给 msbuild 参数来指定发布版本。但这不会改变项目文件中的真实定义:
<ApplicationRevision>xxx</ApplicationRevision>
<ApplicationVersion>xxx</ApplicationVersion>
由于我们以这种方式指定发布版本,因此很难将发布版本添加到源代码管理系统中。
作为替代解决方法:
您可以考虑使用 azure devops 预定义变量指定版本。对我来说,我使用这样的内部版本号格式:
然后我将 $(Build.BuildNumber)
作为 ApplicationRevision
属性 传递。所以现在我有一个增加的发布版本。而且我可以检查管道历史以了解我在哪个运行(和相应的提交)中成功发布:
由于我们在命令行中使用临时值指定版本,因此到目前为止我们无法将临时值添加到源代码管理中。
当有人在 dev 分支中推送时,将发布一个新的测试版本。现在开发人员必须手动指定发布版本,并且所需的最低版本会自动设置为发布版本 - 因此一旦应用程序被强制更新点击。
理想情况下,开发人员不需要指定发布版本,因为它应该是一个滚动版本,并且总是比上一个版本晚一个版本号。我可以编写一个 Powershell 脚本来检查最新版本并增加构建管道中的版本号 - 所以我们有一个增量构建。但这有一个缺点,即在源代码控制系统中不检查发布的版本号。
我该如何解决这个问题?
But this has the drawback that the published version number is not checked in the source control system. How can I approach this issue?
clickonce 应用程序的发布版本由 xx.csproj
中定义的 ApplicationRevision
和 ApplicationVersion
属性控制。
在 Azure devops 服务中,我们总是通过使用 Global Properties 方式将新值传递给 msbuild 参数来指定发布版本。但这不会改变项目文件中的真实定义:
<ApplicationRevision>xxx</ApplicationRevision>
<ApplicationVersion>xxx</ApplicationVersion>
由于我们以这种方式指定发布版本,因此很难将发布版本添加到源代码管理系统中。
作为替代解决方法:
您可以考虑使用 azure devops 预定义变量指定版本。对我来说,我使用这样的内部版本号格式:
然后我将 $(Build.BuildNumber)
作为 ApplicationRevision
属性 传递。所以现在我有一个增加的发布版本。而且我可以检查管道历史以了解我在哪个运行(和相应的提交)中成功发布:
由于我们在命令行中使用临时值指定版本,因此到目前为止我们无法将临时值添加到源代码管理中。