# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2 properties: resources: - resource: Microsoft.WinGet.DSC/WinGetPackage id: vsPackage directives: description: Install Visual Studio Community 2022 allowPrerelease: true settings: id: Microsoft.VisualStudio.2022.Community source: winget - resource: Microsoft.VisualStudio.DSC/VSComponents id: vsComponents dependsOn: - vsPackage directives: description: Install required VS workloads maxVersion: "1.0.15" allowPrerelease: true settings: productId: Microsoft.VisualStudio.Product.Community channelId: VisualStudio.17.Release includeRecommended: false components: - Microsoft.VisualStudio.Component.VC.CoreBuildTools - Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core - Microsoft.VisualStudio.Component.VC.Tools.x86.x64 - Microsoft.VisualStudio.Component.VC.Tools.ARM64 - Microsoft.VisualStudio.Component.VC.Tools.ARM64EC - Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre - Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre - Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre - Microsoft.VisualStudio.Component.VC.Redist.14.Latest - Microsoft.VisualStudio.Component.Windows10SDK - Microsoft.VisualStudio.Component.VC.ATL - Microsoft.VisualStudio.Component.VC.ATL.ARM64 - Microsoft.VisualStudio.Component.VC.ATL.Spectre - Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre - Microsoft.VisualStudio.Component.VC.ATLMFC - Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre - Microsoft.VisualStudio.Component.VC.ASAN - Microsoft.VisualStudio.Component.NuGet.BuildTools - Microsoft.VisualStudio.Component.VC.MFC.ARM64 - Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre - Microsoft.VisualStudio.Workload.NativeDesktop - Microsoft.VisualStudio.Component.Windows11SDK.22621 - resource: Microsoft.WinGet.DSC/WinGetPackage id: wdkPackage dependsOn: - vsComponents directives: description: Install Windows Driver Kit allowPrerelease: true settings: id: Microsoft.WindowsWDK.10.0.22621 source: winget - resource: PSDscResources/Script id: wdkVsix dependsOn: - wdkPackage - vsComponents directives: description: Install Windows Driver Kit VSIX settings: GetScript: | return & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -nologo -latest -products Microsoft.VisualStudio.Product.Community -requires Microsoft.Windows.DriverKit -property installationVersion SetScript: | $path = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -nologo -latest -products * -property enginePath | Join-Path -ChildPath 'VSIXInstaller.exe' if (Test-Path $path) { & $path /q "${env:ProgramFiles(x86)}\Windows Kits\10\Vsix\VS2022\10.0.22621.0\WDK.vsix" } TestScript: | $versionString = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -nologo -latest -products Microsoft.VisualStudio.Product.Community -requires Microsoft.Windows.DriverKit -Property installationVersion if (-not $versionString) { return $false } $versionArray = $versionString.Split('.') if ($versionArray[0] -le 17) { return $false } return $true configurationVersion: 0.2.0