ADO Release IIS Web App Manage Task Physical Path 作为表达式

ADO Release IIS Web App Manage Task Physical Path as an expression

在 ADO IIS Web 应用程序管理任务中管理虚拟应用程序时,如何将物理路径指定为带有变量 release-n 的表达式?

我们刚刚开始将 ADO 发布到 IIS 服务器。我们有 IIS Web 应用程序管理和部署任务在工作,但仅限于服务器上的静态物理路径。

我想将新版本存储在版本目录中,并更新虚拟应用程序以指向正在部署的版本。

例如

  Default Web Site
       /card-poc     <-- web application stored outside of wwwroot
           /release-1
           /release-2
           ...
           /release-n   <-- IIS virtual application physical path is pointed to here

因此,在 ADO Release IIS Web App Manage 任务中,如何将物理路径指定为带有变量的表达式,如 release-n

我已尝试 d:\IIS_VDs\CARD-poc\Release-$(rev:r)\ 获取版本名称,但出现错误

The given path's format is not supported.

预期结果是创建目录,虚拟应用程序将更改为指向新目录,然后后续的 IIS Web 应用程序部署任务会将文件复制到新目录。目标是允许服务器操作员将应用程序回滚到以前的版本,而无需了解或访问 ADO、版本控制或 IIS 服务器以外的任何其他内容。

我测试了$(rev:r),得到了和你一样的错误。我认为问题在于获取 $(rev:r) 变量的值。我在powershell任务中尝试Write-Host "$(rev:r)",但是任务无法获取$(rev:r)的值。根据这个 ,似乎 $(rev:r) 是一种特殊的变量格式,仅在编辑器的数字字段中有效

作为解决方法,您可以尝试使用 Release.ReleaseName 预定义变量。

Release.ReleaseName :当前版本的名称。示例:Release-47