首页 > 解决方案 > 无法从 Azure DEVOPS 发布项目

问题描述

我是 azure devops 的新手,学习目的是从 azure 创建新的基本帐户。我创建了新项目并且确实需要更改。该项目将代码发布到 azure VM 中,并在最后一步出错。

步骤:IIS Web App 部署

错误:找不到具有指定模式的包。检查任务中提到的包是否在构建或上一阶段作为工件发布并在当前作业中下载。

用于发布的 YAML:

steps:
- task: IISWebAppManagementOnMachineGroup@0
  displayName: 'IIS Web App Manage'
  inputs:
    IISDeploymentType: '$(Parameters.IISDeploymentType)'
    ActionIISWebsite: '$(Parameters.ActionIISWebsite)'
    WebsiteName: '$(Parameters.WebsiteName)'
    WebsitePhysicalPath: '%SystemDrive%\inetpub\wwwroot\DD'
    AddBinding: '$(Parameters.AddBinding)'
    Bindings: '$(Parameters.Bindings)'
    CreateOrUpdateAppPoolForWebsite: true
    AppPoolNameForWebsite: DD
    ParentWebsiteNameForVD: '$(Parameters.WebsiteName)'
    VirtualPathForVD: '$(Parameters.VirtualPathForApplication)'
    ParentWebsiteNameForApplication: '$(Parameters.WebsiteName)'
    VirtualPathForApplication: '$(Parameters.VirtualPathForApplication)'
    AppPoolName: '$(Parameters.AppPoolName)
    steps:
- task: IISWebAppDeploymentOnMachineGroup@0
  displayName: 'IIS Web App Deploy'
  inputs:
    WebSiteName: '$(Parameters.WebsiteName)'
    Package: '$(System.DefaultWorkingDirectory)/_ABC.API/drop/*.zip'
    RemoveAdditionalFilesFlag: true
    TakeAppOfflineFlag: true
    XmlVariableSubstitution: True

构建 YAML:

trigger:
- master

pool:
  vmImage: 'windows-latest'



variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(agent.builddirectory)'
    Contents: |
      |
           **\*.runsettings
           **\*FunctionalTest*\**\bin\$(BuildConfiguration)\**
    TargetFolder: '''$(build.artifactstagingdirectory)\FunctionalTests'''


- task: PublishBuildArtifacts@1
  inputs:
    artifactName: 'drop'
    pathToPublish: '$(build.artifactStagingDirectory)'

错误日志:

2020-04-19T10:02:47.0130907Z ##[section]Starting: IIS Web App Deploy
2020-04-19T10:02:47.0236460Z ==============================================================================
2020-04-19T10:02:47.0236816Z Task         : IIS web app deploy
2020-04-19T10:02:47.0237124Z Description  : Deploy a website or web application using Web Deploy
2020-04-19T10:02:47.0237414Z Version      : 0.156.9
2020-04-19T10:02:47.0237649Z Author       : Microsoft Corporation
2020-04-19T10:02:47.0238051Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/iis-web-app-deployment-on-machine-group
2020-04-19T10:02:47.0238500Z ==============================================================================
2020-04-19T10:02:47.8446908Z ##[error]Error: No package found with specified pattern.<br/>Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.
2020-04-19T10:02:47.8471615Z ##[section]Finishing: IIS Web App Deploy

请帮助查找问题

标签: azureazure-devopsazure-pipelines

解决方案


尝试更改部分Package以使用pathToPublish默认情况下的路径System.DefaultWorkingDirectory

- task: PublishBuildArtifacts@1
  inputs:
    artifactName: 'drop'
    pathToPublish: '$(build.artifactStagingDirectory)'

任务变化IISWebAppDeploymentOnMachineGroup

- task: IISWebAppDeploymentOnMachineGroup@0
  displayName: 'IIS Web App Deploy'
  inputs:
    WebSiteName: '$(Parameters.WebsiteName)'
    Package: '$(build.artifactStagingDirectory)/*.zip'
    RemoveAdditionalFilesFlag: true
    TakeAppOfflineFlag: true
    XmlVariableSubstitution: True

Build.ArtifactStagingDirectory

代理上的本地路径,任何工件在被推送到其目的地之前被复制到该路径。例如:c:\agent_work\1\a

System.DefaultWorkingDirectory :

下载源代码文件的代理上的本地路径。例如:c:\agent_work\1\s

为此,请参阅预定义变量


推荐阅读