Comment faire en sorte que vos pipelines Azure DevOps respectent le fichier global.json ?
Voici une situation qui peut être embrassante si vous devez utiliser un fichier global.json avec Azure Pipeline : la tâche DotNetCoreCLI@2 n'utilise pas votre fichier global.json.
Ce problème se produit si le fichier global.json ne se trouve pas à la racine du repository.
Celui-ci a déjà été reporté sur GitHub [BUG]: DotNetCoreCLI@2 global.json lookup is hardcoded to repository root · Issue #21523 · microsoft/azure-pipelines-tasks.
Malheureusement, cette issue date de décembre, et n'a toujours pas été résolue.
Il existe cependant une solution de contournement qui n'est pas documentée. Elle consiste à utiliser la propriété workingDirectory de la tâche DotNetCoreCLI@2. En affectant à celle-ci le dossier dans lequel se trouve le fichier global.json, on résout le problème.
Exemple :
- task: DotNetCoreCLI@2
displayName: 'Compilation'
inputs:
command: build
projects: $(solution)
workingDirectory: '$(Build.SourcesDirectory)\Sources\'