Azure DevOps管道创建空zip文件

3

我想请问您如何解决我在创建Azure pipeline过程中遇到的问题。

问题描述:

很可能是“brick”负责构建项目时没有创建bin文件夹,因此我最终得到了一个空的zip文件。尽管所有测试都已成功通过。

我的yaml文件:

trigger:
- main

pool:
  vmImage: 'windows-latest'

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

steps:
- task: NuGetToolInstaller@1

- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '3.1.x'

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

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/XXX.EvaluateFunction.csproj'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.BinariesDirectory)'
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/Evaluate.zip'
    replaceExistingArchive: true

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

 

1
你在哪里指定输出位置为 Build.BinariesDirectory - Daniel Mann
@DanielMann 是的,情况就是那样。谢谢。 - Grzegorz Orda
1个回答

3
根据有关“预定义变量”的文件:Build.BinariesDirectory 是代理服务器本地路径,您可以将其用作已编译二进制文件的输出文件夹。 您的yaml文件未将其用作输出文件夹,因此此文件夹为空。 您可以在.NET Core任务中使用 Build.BinariesDirectory 作为输出文件夹:arguments: '--output $(Build.BinariesDirectory)' 这是完整的示例:
trigger:
- main

pool:
  vmImage: 'windows-latest'

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

stages:
- stage: Build
  jobs:
  - job: Build
    steps:
    - task: DotNetCoreCLI@2
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
        feedsToUse: 'select'

    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: '**/*.csproj'
        arguments: '--configuration $(BuildConfiguration)'
    - task: DotNetCoreCLI@2
      inputs:
        command: 'publish'
        publishWebProjects: true
        arguments: '--configuration $(BuildConfiguration) --output $(Build.BinariesDirectory)'
    
    - task: ArchiveFiles@2
      inputs:
       rootFolderOrFile: '$(Build.BinariesDirectory)'
       includeRootFolder: true
       archiveType: 'zip'
       archiveFile: '$(Build.ArtifactStagingDirectory)/Evaluate.zip'
       replaceExistingArchive: true
    
    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'

您还可以参考有关创建您的第一个 .NET Core 管道的示例。


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