错误:多个包与指定模式匹配:*.deploy.cmd。请限制搜索模式
Posted
技术标签:
【中文标题】错误:多个包与指定模式匹配:*.deploy.cmd。请限制搜索模式【英文标题】:Error: More than one package matched with specified pattern: *.deploy.cmd. Please restrain the search pattern 【发布时间】:2019-07-04 15:40:14 【问题描述】:Azure DevOps Build 工件 drop 包含以下文件:
Project1.zip Project1.deploy.cmd Project2.zip Project2.deploy.cmd这些文件是单个解决方案的构建输出的结果。
我想将 Project1 Web 应用程序部署到 Azure。
我设置了发布定义并向其添加了部署 Azure Web 服务任务。任务包文件或文件夹的路径包含与一个文件 Project1.zip 完全匹配的值。我没有在任何地方指定任何 *.deploy.cmd 文件。
当版本执行时,它在该任务上失败并出现错误: 多个包与指定模式匹配:*.deploy.cmd。请限制搜索模式。
我发现的唯一解决方法是删除 2.deploy.cmd 以便部署 dask 不会使用指定的搜索模式找到多个文件。但我不想删除它,特别是因为我也想最终部署 Project2。如何解决这个问题?
【问题讨论】:
@LeoLiu-MSFT 是的 任务查找cmd文件github.com/microsoft/azure-pipelines-tasks/issues/11700的方式好像有bug 【参考方案1】:我建议您将工件放在不同的文件夹中。
您可以在调用 Web 部署任务之前使用 Powershell 任务
创建两个文件夹 将项目 1 的 .cmd 和 .zip 文件夹移到一个文件夹中 将项目 2 的 .cmd 和 .zip 文件夹移动到第二个文件夹中然后您可以针对项目 1 的文件夹路径调用您的 Web 部署任务,这应该可以避开您的问题。
您还可以提取 zip 文件,然后将 Web 部署任务指向该文件夹,如果上述内容对于您的特定用例而言过于复杂或失败,这也可能对您有所帮助。
【讨论】:
【参考方案2】:不要使用通配符。指定要部署的文件的确切路径。如果要部署多个事物,请使用多个任务。
【讨论】:
在哪里指定?我已经指定了单张卡片的路径,没有通配符。 暂时无法指定deploy.xml。以上是关于错误:多个包与指定模式匹配:*.deploy.cmd。请限制搜索模式的主要内容,如果未能解决你的问题,请参考以下文章
使用 Arrow 创建具有错误处理的对象构建器 - 模式匹配多个 Either