'MsBuild Task on Azure DevOps: with different configuration for dependent projects
i have one solutions with multiple projects.
DSS.DMN.Client project dependens on other projects(have references)
This is how my yaml files looks like
- task: MSBuild@1
displayName: 'Build solution Client'
inputs:
platform: anyCPU
maximumCpuCount: true
configuration: 'Integration'
solution: DSS.DMN.Client
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**\bin\**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
the thing is that Client have configuration as INT but the other two dependent projects have configuration as debug.
now when i run the build i get the error:
##[error]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(777,5): Error : The OutputPath property is not set for project 'DSS.DMN.AVModule.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='INT' Platform='AnyCPU'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project.
the problem is build is trying to find INT configration for the project for DSS.DMN.AVModule.csproj though it have only debug configuration.
question: How do i provide differernt configation on my build pipeline for different project in a single build?
Solution 1:[1]
try this - attention in folder src/ my project is under src root folder
name: functions-name
trigger:
branches:
include:
- main
paths:
include:
- src/*
exclude:
- README.md
variables:
- name: functionAppName
value: 'func-name-env'
- name: azureSubscriptionENV
value: 'Azure ENV'
- name: vmImageName
value: 'windows-2019'
- name: workingDirectory
value: 'src/xxx.Functions'
- name: systemName
value: BatchAllocation
pool:
vmImage: $(vmImageName)
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
workspace:
clean: all
pool:
vmImage: $(vmImageName)
steps:
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**\*.sln'
feedsToUse: 'config'
noCache: false
- task: VSBuild@1
inputs:
solution: '**\*.sln'
msbuildArgs: '/p:DeployOnBuild=true /p:SkipInvalidConfigurations=false /p:OutDir="$(System.DefaultWorkingDirectory)\publish_output"'
platform: 'Any CPU'
configuration: 'Release'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)/publish_output'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(systemName)-v$(Build.BuildId).zip
replaceExistingArchive: true
- publish: $(Build.ArtifactStagingDirectory)/$(systemName)-v$(Build.BuildId).zip
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |

