为什么此Azure DevOps管道版本失败?

这是一个没有错误生成的ASP.NET Core 3.0项目,但是当它触发管道发布到Azure App Service时,它失败并显示以下错误:

  

2019-11-10T23:09:23.8008460Z ## [错误]错误:找不到具有指定模式的软件包:D:\ a \ r1 \ a ***。zip

需要做什么来修复发布管道?管道版本正在将最新版本作为其工件。

为什么此Azure DevOps管道版本失败?

zhuhailucye 回答:为什么此Azure DevOps管道版本失败?

在发布管道中,您已经在Artifacts区域中指定了构建工件 enter image description here

将构建工件添加到发布管道时,您选择为其赋予别名Build Artifact。这意味着(默认情况下)您的.zip文件将位于$(system.DefaultWorkingDirectory)/Build Artifact/

的某个子目录中
  

启动发布时,会为每个发布管道在代理中创建一个新的唯一文件夹,并将工件下载到该文件夹​​中。 $(System.DefaultWorkingDirectory)变量映射到此文件夹。


  

为了确保每个工件下载的唯一性,将自动为链接到发布管道的每个工件源提供一个特定的下载位置,称为源别名。可以通过变量访问此位置:

     

$(System.DefaultWorkingDirectory)\[source alias]

     

此唯一性还确保,如果以后在其原始位置重命名链接的工件源(例如,在Azure Pipelines中重命名生成管道或在Jenkins中重命名项目),则无需编辑任务属性,因为代理中定义的下载位置不会更改。

     

默认情况下,源别名是链接工件资源时选择的源名称,并带有下划线。根据工件来源的类型,这将是构建管道,作业,项目或存储库的名称。您可以从发布管道的工件选项卡中编辑源别名。例如,当您更改构建管道的名称,并且想要使用可反映构建管道名称的源别名时。

(来自丰富的documentation

不要使用***.zip(这不是正确的通配符语法)来搜索您的软件包,而应使用Build Artifact/**/*.zip

  • **用于递归搜索目录
    • (我不知道哪个文件夹)
  • *用于搜索路径的给定级别的一部分
    • 任何文件/文件夹
      • 以(SomeFile.*)开头
      • 以({*File.zip)结尾
      • 并且我认为包含(*meFi*

假设

以上信息假定您适当地来自构建管道publishing your build artifact,并且已在发布管道中添加了正确的构建工件。

,

管道YAML缺少以下任务。不确定为什么ASP.NET Core模板中不包含此功能,这对于刚接触Azure DevOps的开发人员来说非常困惑。

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: true

- task: CopyFiles@2
  inputs:
    targetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
,

添加源类型为“构建”的工件时,将“默认版本”选择为“来自带有标签的构建管道默认分支的最新版本”,如下所示:

enter image description here

本文链接:https://www.f2er.com/3127202.html

大家都在问