VSTS 发布定义中的通配符

Wildcards in VSTS Release Definition

我正在尝试将 Web 作业(其中 4 个)部署到应用程序服务,但是在部署它们时出现错误 -

2017-12-11T11:44:09 ==============================================================================
2017-12-11T11:44:10 Got connection details for Azure App 
Service:'**********'
2017-12-11T11:44:10 ##[error]Error: More than one package 
matched with specified pattern. Please restrain the search 
pattern.
2017-12-11T11:44:13 Successfully updated deployment History 
at ***********
2017-12-11T11:44:13 ##[section]Finishing: Deploy Azure Webjob

下面是配置屏幕:-

知道如何从单个任务部署所有 Web 作业而不是创建多个任务吗?

对于 Azure App Service Deploy 任务,它只能部署一个 webjob。

由于您有四个网络作业,因此您应该确保包的通配符只匹配一个唯一的网络作业。

  • 如果要部署所有四个 webjobs,可以使用四个 Azure App Service Deploy 任务(如 Daniel 所述),并确保每个任务只匹配一个 webjobs。
  • 如果您只想部署一个更改的webjob,您可以检测更改的wenjob并为其部署。详细步骤,可以参考.

Azure App Deploy 任务确实需要通配符,但这并不意味着它可以部署多个包。通配符用于在多个文件夹中搜索 Web 部署包。

默认值为$(System.DefaultWorkingDirectory)/**/*.zip。这意味着该任务将在您的 System.DefaultWorkingDirectory.

下方某处搜索 .zip 文件

如果您查看应用程序部署任务的代码(是的!它是 open source on GitHub),您会看到仅检查一个匹配文件:

 if(availableWebPackages.length > 1) {
      throw new Error(tl.loc('MorethanonepackagematchedwithspecifiedpatternPleaserestrainthesearchpattern'));
 }
 webDeployPkg = availableWebPackages[0];

要部署多个 Web 部署包,最简单的方法是克隆任务并确保每个搜索模式与单个 Web 部署包匹配。然后您将完成四个任务。

或者您在 GitHub 上发送拉取请求以扩展任务以一次部署多个包。