我们需要在构建服务器上注册 HTTP 侦听器,并希望当一切正常时我们的管道步骤全部为“绿色”。因此,为了让我们的代码运行,我们必须运行以下代码:
netsh http add urlacl url=http://+:8080/
但是,当在构建服务器上运行两次时,我们收到以下错误:
Url reservation add failed, Error: 183 Cannot create a file when that file already exists.
到目前为止一切顺利。但是,如果我们更改构建服务器或添加/删除某些服务器等,我们的代码可能不再工作。如果那是几个月/几年后,谁会记得添加 http 侦听器......
那么,有没有办法有条件地添加urlacl代码?
类似:
netsh http show urlacl url=http://+:8080/
{If No results, only then run the following line of code, otherwise do nothing else:}
netsh http add urlacl url=http://+:8080/
解决方法是将其记录在某处,如果我们再次遇到问题,请记住记录在哪里。或者始终执行此步骤,但在下一个 YAML 步骤中添加“条件:successedOrFailed()”?然而这些选项并不是优选的。
那么,有没有办法有条件地添加urlacl代码?
您可以使用 PowerShell 任务运行以下脚本来有条件地添加 urlacl 代码。
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$urlacl = netsh http show urlacl url=http://+:8080/
if ($urlacl -like "*Reserved URL : http://+:8080/*") {
Write-Host "URL reservation already exists, no action taken."
} else {
netsh http add urlacl url=http://+:8080/ user=DOMAIN\user
netsh http show urlacl url=http://+:8080/
}
这是我的测试结果: