Azure DevOps 管道创建空 zip
Azure DevOps Pipeline create empty zip
我想请教一下我在创建Azure pipeline过程中遇到的一个问题如何解决。
问题描述:
可能是负责构建项目的“砖头”没有创建 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'
根据关于 predefined variables 的文档:Build.BinariesDirectory
是代理上的本地路径,您可以将其用作已编译二进制文件的输出文件夹。您的 yaml 文件没有将其用作输出文件夹,因此该文件夹为空。您可以使用 Build.BinariesDirectory
作为 .NET Core 任务中的输出文件夹: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'
也可以参考create your first .NET Core pipeline的例子。
我想请教一下我在创建Azure pipeline过程中遇到的一个问题如何解决。
问题描述:
可能是负责构建项目的“砖头”没有创建 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'
根据关于 predefined variables 的文档:Build.BinariesDirectory
是代理上的本地路径,您可以将其用作已编译二进制文件的输出文件夹。您的 yaml 文件没有将其用作输出文件夹,因此该文件夹为空。您可以使用 Build.BinariesDirectory
作为 .NET Core 任务中的输出文件夹: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'
也可以参考create your first .NET Core pipeline的例子。