Dot-Net-Core

在 Azure Pipelines 建構中命名生成的 ZIP 存檔?

  • August 5, 2021

仍在嘗試全面掌握 Azure Pipelines 以及我能用這些做什麼……

我終於設法用 Azure Pipelines 建構了我的小 .NET Core 命令行實用程序——現在正試圖將它作為建構工件發布。

使用這個 YAML,我可以建構和打包工具:

- task: DotNetCoreCLI@2
 displayName: 'dotnet build'
 inputs:
   command: 'build'
   projects: '$(solution)'

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

- task: PublishBuildArtifacts@1
 inputs:
   pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
   artifactName: 'MyTool_LatestBuild'

但是在已發布的建構工件中,我只得到一個文件a.zip- 有什麼方法可以影響該 ZIP 存檔的名稱嗎?我真的很想擁有類似的MyTool_2020_Sep_08.zip東西MyTool_v1.5.7.zip……但我該怎麼做呢?似乎在網際網路上的任何地方都找不到任何非常有用的東西……任何輸入?

謝謝!

1.同意Vernou。您可以通過指定包含二進製文件的文件夾名稱來自定義名稱。所以我們需要修改step的參數--output和step的參數。dotnet publish``PathtoPublish``PublishBuildArtifacts

2.但要獲取日期時間,您可以使用預定義變數Build.BuildNumber 。

我的工作樣本:

name: $(Date:yyyyMMdd)$(Rev:.r)

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

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

- task: PublishBuildArtifacts@1
 inputs:
   PathtoPublish: '$(Build.ArtifactStagingDirectory)/MyTool_$(Build.BuildNumber)'
   ArtifactName: 'MyTool_LatestBuild'
   publishLocation: 'Container'

有關使用 BuildNumber 獲取日期的更多詳細資訊,您可以查看Configure run or build numbers

結果:

在此處輸入圖像描述

我們可以通過修改我們定義的方式來控制格式Build.BuildNumber(在 Yaml 中,它是name)。如果我們定義name: $(Date:yyyyMMdd),那麼輸出 zip 將是MyTool_20200908.zip

引用自:https://stackoverflow.com/questions/63788646