I have the following tasks in my yaml file in Azure DevOps It publishes my console application and zip it in a file

- task: DotNetCoreCLI@2
    command: 'publish'
    publishWebProjects: false
    projects: '**/MyApp.csproj'
    arguments: '-r win-x64 -p:PublishSingleFile=True --self-contained true -o $(Build.ArtifactStagingDirectory)'

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

I set the project version directly on the project file in Visual Studio when I make any changes. Now I'm trying to get that version when I am publishing the project in AzureDevOps and customise the file name, lets say for a project version 1.2.1 the archived file output of the publish in azure should be MyApp-v1.2.1.zip Currently it only output file as MyApp.zip

Not sure if even my approach towards versioning is correct, so appreciate any input!

1 Answer 1


I had a similar need and I did it as below. In my case it is archived and published differently but I think you get the main idea.

    - task: PowerShell@2
      displayName: 'Get version number'
        targetType: 'inline'
        script: |
         $VERSION=([xml](Get-Content **\MyApp.csproj)).Project.PropertyGroup.Version
         Write-Host("##vso[task.setvariable variable=VERSION]$VERSION")
    ... // heare I archive the built files.
    - task: PublishPipelineArtifact@1
        targetPath: '$(Build.ArtifactStagingDirectory)/MyApp_$(VERSION).zip'
        artifact: 'MyApp_$(VERSION)'
        publishLocation: 'pipeline'

In the first powershell task I get the version number from the project file and set it to a variable called VERSION. I learned it from this https://stackoverflow.com/a/56039297/275940 answer which has done the same for maven project.

In the second task I used the variable to make correct file path.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.