[Windows] Add WDK on Windows Server 2022 without VSIX (#5838)

* Add WDK on Windows Server 2022 without VSIX

* Fix extension names
This commit is contained in:
Aleksandr Chebotov
2022-06-29 15:46:22 +02:00
committed by GitHub
parent 45da727c67
commit 02d4539cae
5 changed files with 49 additions and 27 deletions

View File

@@ -4,34 +4,41 @@
################################################################################
# Requires Windows SDK with the same version number as the WDK
if (Test-IsWin19)
{
if (Test-IsWin22) {
# SDK available through Visual Studio
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2196230"
$FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2022\*\WDK.vsix"
$VSver = "2022"
} elseif (Test-IsWin19) {
$winSdkUrl = "https://go.microsoft.com/fwlink/?linkid=2173743"
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2166289"
$FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix"
$VSver = "2019"
}
elseif (Test-IsWin16)
{
} elseif (Test-IsWin16) {
$winSdkUrl = "https://go.microsoft.com/fwlink/p/?LinkID=2023014"
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2026156"
$FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\WDK.vsix"
$VSver = "2017"
}
else
{
throw "Invalid version of Visual Studio is found. Either 2017 or 2019 are required"
} else {
throw "Invalid version of Visual Studio is found. Either 2017,2019 or 2022 are required"
}
$argumentList = ("/features", "+", "/quiet")
# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI
Install-Binary -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList $argumentList
if ((Test-IsWin16) -or (Test-IsWin19)) {
# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI
Install-Binary -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList $argumentList
}
# `wdksetup.exe /features + /quiet` installs all features without showing the GUI
Install-Binary -Url $wdkUrl -Name "wdksetup.exe" -ArgumentList $argumentList
# Need to install the VSIX to get the build targets when running VSBuild
Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly
# Windows 2022 - Skip installation due to a regression
# https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
if ((Test-IsWin16) -or (Test-IsWin19)) {
$FilePath = Resolve-Path -Path $FilePath
Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly
}
Invoke-PesterTests -TestFile "WDK"

View File

@@ -54,9 +54,9 @@ function Get-VisualStudioExtensions {
# SDK
if (Test-IsWin19) {
$sdkPackageVersion = Get-SDKVersion
$sdkVersion = Get-SDKVersion
$sdkPackages = @(
@{Package = 'Windows Software Development Kit Extension'; Version = $sdkPackageVersion}
@{Package = 'Windows Software Development Kit'; Version = $sdkVersion}
)
}
@@ -68,14 +68,21 @@ function Get-VisualStudioExtensions {
)
# WDK
$wdkPackageVersion = Get-VSExtensionVersion -packageName 'Microsoft.Windows.DriverKit'
$wdkExtensionVersion = Get-WDKVersion
$wdkVersion = Get-WDKVersion
$wdkExtensionVersion = Get-VSExtensionVersion -packageName 'Microsoft.Windows.DriverKit'
$wdkPackages = @(
@{Package = 'Windows Driver Kit'; Version = $wdkPackageVersion}
@{Package = 'Windows Driver Kit'; Version = $wdkVersion}
@{Package = 'Windows Driver Kit Visual Studio Extension'; Version = $wdkExtensionVersion}
)
}
if (Test-IsWin22) {
# WDK
$wdkVersion = Get-WDKVersion
$wdkPackages = @(
@{Package = 'Windows Driver Kit'; Version = $wdkVersion}
)
}
$extensions = @(
$vsixs

View File

@@ -1,10 +1,12 @@
Describe "WDK" -Skip:(Test-IsWin22) {
Describe "WDK" {
It "WDK exists" {
$WDKVersion = (Get-CimInstance -ClassName Win32_Product -Filter "Name = 'Windows Driver Kit'").Version
$WDKVersion| Should -Not -BeNullOrEmpty
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
$WDKVersion = $installedApplications | Where-Object DisplayName -eq 'Windows Driver Kit' | Select-Object -First 1 -ExpandProperty DisplayVersion
$WDKVersion | Should -Not -BeNullOrEmpty
}
It "WDK version from system" {
It "Windows Driver Kit VSIX extension" -Skip:(Test-IsWin22) {
$version = Get-VSExtensionVersion -packageName "Microsoft.Windows.DriverKit"
$version | Should -Not -BeNullOrEmpty
}

View File

@@ -199,6 +199,7 @@
"Microsoft.VisualStudio.Component.TestTools.CodedUITest",
"Microsoft.VisualStudio.Component.TestTools.WebLoadTest",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64EC",
"Microsoft.VisualStudio.Component.VC.CLI.Support",
"Microsoft.VisualStudio.Component.VC.CMake.Project",
"Microsoft.VisualStudio.Component.VC.DiagnosticTools",
@@ -214,9 +215,13 @@
"Microsoft.VisualStudio.Component.VC.MFC.ARM",
"Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64EC",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64EC.Spectre",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64EC",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64EC.Spectre",
"Microsoft.VisualStudio.Component.VC.Modules.x86.x64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",

View File

@@ -174,6 +174,7 @@
"type": "powershell",
"scripts": [
"{{ template_dir }}/scripts/Installers/Install-Wix.ps1",
"{{ template_dir }}/scripts/Installers/Install-WDK.ps1",
"{{ template_dir }}/scripts/Installers/Install-Vsix.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1",