SonarCloud Support for .NET Core 3.0.100-preview5

This is still an issue but as a workaround you can use the DotNetCoreInstaller task to switch .netcore sdk version as you go through your steps:

steps:    
- task: DotNetCoreInstaller@0
  displayName: 'Use .NET Core SDK 2.2.103 For Sonar Cloud'
  inputs:
    version: '2.2.103'

- script: dotnet --list-sdks
  displayName: 'Check dotnet sdks'

- task: SonarCloudPrepare@1
  displayName: 'Prepare SonarCloud analysis'
  inputs:
    SonarCloud: 'SonarCloudConnection'
    organization: '$(organization)'
    projectKey: '$(projectKey)'
    projectName: '$(projectName)'
    projectVersion: '$(Build.BuildNumber)'
    extraProperties: |
     sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/TestResults/Coverage/coverage.opencover.xml

- task: DotNetCoreInstaller@0
  displayName: 'Use .NET Core SDK $(dotnetSdkVersion) For Project'
  inputs:
    packageType: sdk
    version: '$(dotnetSdkVersion)'

- script: dotnet --list-sdks
  displayName: 'Check dotnet sdks'

- task: DotNetCoreCLI@2
  displayName: 'Restore Project Dependencies'
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'select'
    vstsFeed: 'GUID'

- task: DotNetCoreCLI@2
  displayName: 'Build the project - $(buildConfiguration)'
  inputs:
    command: 'build'
    arguments: '--no-restore --configuration $(buildConfiguration)'
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  displayName: 'Install ReportGenerator'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-reportgenerator-globaltool'

- task: DotNetCoreCLI@2
  displayName: 'Run unit tests - $(buildConfiguration)'
  inputs:
    command: 'test'
    arguments: '--no-build --configuration $(buildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)/TestResults/Coverage/'
    publishTestResults: true
    projects: '**/*.Tests.csproj'

- script: |
    reportgenerator -reports:$(Build.SourcesDirectory)/**/coverage.cobertura.xml -targetdir:$(Build.SourcesDirectory)/CodeCoverage -reporttypes:HtmlInline_AzurePipelines
  displayName: 'Create code coverage report'

- task: DotNetCoreInstaller@0
  displayName: 'Use .NET Core SDK 2.2.103 For Sonar Cloud'
  inputs:
    version: '2.2.103'

- script: dotnet --list-sdks
  displayName: 'Check dotnet sdks'

- task: SonarCloudAnalyze@1
  displayName: 'Run SonarCloud code analysis'

- task: SonarCloudPublish@1
  displayName: 'Publish SonarCloud quality gate results'

- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage report'
  inputs:
    codeCoverageTool: 'cobertura'
    summaryFileLocation: '$(Build.SourcesDirectory)/**/coverage.cobertura.xml'

Another possible solution is to get multiple DotNet Core sdks installed using the scripts provided by Microsoft here: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script

3 Likes