Visual Studio Team Services发布/部署失败 - “找不到指定模式的软件包”

20
我正在尝试实现持续集成和持续部署到我的DEV Azure应用服务。我正在使用Visual Studio Team Services上的托管代理。我的发布定义中的“将网站部署到Azure”步骤一直失败,显示错误“未找到指定模式的包”。有什么想法吗?

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

5个回答

27
指定的模式匹配到了多个包。请限制搜索模式 [sic]。" 错误通常在任务找到2个或更多的包时发生,因为您在任务的“包或文件夹”设置中输入了“xxx\*.zip”。所以您只需要更新它以指定详细的包名称。类似的问题可以参考这里:部署Azure网站和WebJobs在同一解决方案中使用VSO - 错误 - 只能有一个
对于您的原始问题,您还可以通过创建一个新的构建定义,在“生成”选项卡上选择“Visual Studio”,在“部署”选项卡上选择“Azure WebApp”来解决它。这将创建一个已添加所需参数的构建定义。

2
这个问题已经解决了。原来是我的 webjob 项目引起了它去找多个包。 - drewob
将Azure网站和WebJobs一起部署到同一个解决方案中,使用VSO时出现错误:“网站和WebJobs不能在同一段时间内处理”。 - Patrick Borkowicz
2
请问您能否详细解释一下如何更新以指定详细的包名称,您是在寻找要创建的zip文件还是已经创建好的zip文件? - Demodave

7

我几个小时前也遇到了同样的问题。以下是我解决问题的方法:

  1. 确保“生成解决方案”步骤中的MSBuild参数为: /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\"

  2. 添加 Azure 应用服务部署:ARM 步骤

  3. 配置订阅和应用服务名称
  4. 包或文件夹应为$(build.artifactstagingdirectory)\**\*.zip

步骤:

Step definitions

Azure 应用服务部署配置:

enter image description here


2
多亏了你的建议,我离成功又近了一步。不过,现在在部署步骤中出现了“指定模式匹配到多个包。请限制搜索模式。”的错误提示。有什么建议吗? - drewob
2
也许你可以尝试像 @Eddie - MSFT 建议的那样明确命名包(在构建和部署步骤中),例如:$(build.artifactstagingdirectory)\MyAwesomeAppPackage.zip。 - liri2006
1
谢谢!原来是Markdown删除了必需的斜杠。我已经清理干净了。 - Alex C

2
如果您正在使用默认的Azure应用服务部署任务,请在YAML文件末尾添加以下内容:

最初的回答:如果您使用的是默认的Azure应用服务部署任务,请在YAML文件末尾添加此内容。
- task: DotNetCoreCLI@2
  displayName: 'dotnet publish $(buildConfiguration)'
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

- task: PublishBuildArtifacts@1
  displayName: 'publish artifacts'

我遇到了同样的问题,这个方法对我有效:

最初的回答:

# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'

- task: DotNetCoreCLI@2
  displayName: 'dotnet publish $(buildConfiguration)'
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

- task: PublishBuildArtifacts@1
  displayName: 'publish artifacts'

我成功地通过在Azure DevOps中的任务> .NET Core并从命令下拉菜单中选择发布,添加了缺失的任务并在我的部署任务之前添加了一个发布任务来修复问题。 - Richard Garside

0

请确保您没有勾选“跳过工件下载”


0
在 Azure DevOps 中创建构建管道时,使用可视化设计器,即使您的代码存储在 Azure Repos 和 GitHub 上,

然后选择源

最后选择相应的模板以适用于您的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接