Posted in:

As part of some long-overdue maintenance of my open source NAudio project, I updated to use the latest .NET 6 SDK and switched to the 10.0.18362.0 Windows SDK (1809). This unfortunately broke my Azure Pipelines build because it was hard-coded to use a vmImage of windows-2019 which only has Visual Studio 2019 installed.

I switched my vmImage to windows-latest which gives you Windows 2022 with Visual Studio 2022 installed. However, this one didn't come with the Windows 10 SDK that I needed. There's a helpful document that lists everything installed on the VM image which for some reason skips over the SDK I needed.

However, after a bit of digging I found that it's very easy to install a specific version of the Windows SDK using, chocolatey, a Windows package manager that is helpfully already installed.

All I had to do was add a new -script entry under steps:, and run the choco install windows-sdk-10.1 --version=10.1.18362.1 command, to pick out the specific SDK I needed.

This script can be any PowerShell, so you could obviously use it to set up any other pre-requisites you need for your build. Here's my final azure-pipelines.yaml file:

pool:
  vmImage: 'windows-latest' 

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps: 
- script: choco install windows-sdk-10.1 --version=10.1.18362.1

- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    testFiltercriteria: 'TestCategory!=IntegrationTest'
Want to get up to speed with the the fundamentals principles of digital audio and how to got about writing audio applications with NAudio? Be sure to check out my Pluralsight courses, Digital Audio Fundamentals, and Audio Programming with NAudio.