diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json
index 5704604a2..15ed7cb83 100644
--- a/images/win/Windows2019-Azure.json
+++ b/images/win/Windows2019-Azure.json
@@ -154,12 +154,6 @@
"{{ template_dir }}/scripts/Installers/Windows2019/Update-DockerImages.ps1"
]
},
- {
- "type": "powershell",
- "scripts": [
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-WDK.ps1"
- ]
- },
{
"type": "powershell",
"valid_exit_codes": [
@@ -188,6 +182,12 @@
"{{ template_dir }}/scripts/Installers/Install-NET48.ps1"
]
},
+ {
+ "type": "powershell",
+ "scripts": [
+ "{{ template_dir }}/scripts/Installers/Windows2019/Install-WDK.ps1"
+ ]
+ },
{
"type": "powershell",
"scripts":[
diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
index 6e091e7e7..ae58a9818 100644
--- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1
+++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
@@ -18,4 +18,5 @@ Export-ModuleMember -Function @(
'Add-SoftwareDetailsToMarkdown'
'Stop-SvcWithErrHandling'
'Set-SvcWithErrHandling'
+ 'Get-VS19ExtensionVersion'
)
diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
index 56fac941e..6eec7e793 100644
--- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
@@ -83,8 +83,8 @@ function Install-EXE
}
function Stop-SvcWithErrHandling
-<#
-.DESCRIPTION
+<#
+.DESCRIPTION
Function for stopping the Windows Service with error handling
.AUTHOR
@@ -98,7 +98,7 @@ Switch for stopping the script and exit from PowerShell if one service is absent
#>
{
param (
- [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
+ [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
[Parameter()] [switch] $StopOnError
)
@@ -126,8 +126,8 @@ Switch for stopping the script and exit from PowerShell if one service is absent
}
function Set-SvcWithErrHandling
-<#
-.DESCRIPTION
+<#
+.DESCRIPTION
Function for setting the Windows Service parameter with error handling
.AUTHOR
@@ -140,7 +140,7 @@ The name of stopping service
Hashtable for service arguments
#>
{
-
+
param (
[Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName,
[Parameter(Mandatory)] [hashtable] $Arguments
@@ -160,3 +160,30 @@ Hashtable for service arguments
}
}
}
+
+function Get-VS19ExtensionVersion
+{
+ param (
+ [string] [Parameter(Mandatory=$true)] $packageName
+ )
+
+ $instanceFolders = Get-ChildItem -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances"
+
+ if ($instanceFolders -is [array])
+ {
+ Write-Host "More than one instance installed"
+ exit 1
+ }
+
+ $stateContent = Get-Content -Path (Join-Path $instanceFolders '\state.packages.json')
+ $state = $stateContent | ConvertFrom-Json
+ $packageVersion = ($state.packages | Where-Object { $_.id -eq $packageName }).version
+
+ if (!$packageVersion)
+ {
+ Write-Host "installed package $packageName for Visual Studio 2019 was not found"
+ exit 1
+ }
+
+ return $packageVersion
+}
diff --git a/images/win/scripts/Installers/Windows2019/Install-WDK.ps1 b/images/win/scripts/Installers/Windows2019/Install-WDK.ps1
index 205275e0b..b70644370 100644
--- a/images/win/scripts/Installers/Windows2019/Install-WDK.ps1
+++ b/images/win/scripts/Installers/Windows2019/Install-WDK.ps1
@@ -3,10 +3,6 @@
## Desc: Install the Windows Driver Kit
################################################################################
-# Version: 10.0.18362.0
-# Update Validate-WDK.ps1 if the version changes!
-# There doesn't seem to be any way to check the version programmatically
-
# Requires Windows SDK with the same version number as the WDK
$winSdkUrl = "https://go.microsoft.com/fwlink/p/?linkid=2083338"
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2085767"
@@ -31,11 +27,21 @@ if ($wdkExitCode -ne 0)
# Need to install the VSIX to get the build targets when running VSBuild
# Write-Host "Installing WDK.vsix"
- $process = Start-Process `
+try
+{
+ $process = Start-Process `
-FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VSIXInstaller.exe" `
-ArgumentList ("/quiet", '"C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix"') `
-Wait `
-PassThru
+}
+catch
+{
+ Write-Host "There is an error during WDK.vsix installation"
+ $_
+ exit 1
+}
+
$exitCode = $process.ExitCode
diff --git a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1 b/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
index db941621e..c3c6a8f04 100644
--- a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
+++ b/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
@@ -3,11 +3,30 @@
## Desc: Validate the installation of the Windows Driver Kit
################################################################################
+Import-Module -Name ImageHelpers -Force
+
+function Get-WDKVersion
+{
+ $WDKVersion = (Get-WmiObject Win32_Product -Filter "Name = 'Windows Driver Kit'").version
+
+ if (!$WDKVersion)
+ {
+ Write-Host "WDK was not found"
+ exit 1
+ }
+
+ return $WDKVersion
+}
+
+$WDKVersion = Get-WDKVersion
+$WDKPackageVersion = Get-VS19ExtensionVersion -packageName "Microsoft.Windows.DriverKit"
+
# Adding description of the software to Markdown
$SoftwareName = "Windows Driver Kit"
$Description = @"
-_Version:_ 10.0.18362.0
+_WDK Version:_ $WDKVersion
+_WDK Visual Studio Extension Version:_ $WDKPackageVersion
"@
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1 b/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
index 94724a3de..4334beb14 100644
--- a/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
+++ b/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
@@ -11,23 +11,6 @@ function Get-WixVersion {
return $Version
}
-#Gets the extension details from state.json
-function Get-WixExtensionPackage {
- $vsProgramData = Get-Item -Path "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances"
- $instanceFolders = Get-ChildItem -Path $vsProgramData.FullName
-
- if($instanceFolders -is [array])
- {
- Write-Host "More than one instance installed"
- exit 1
- }
-
- $stateContent = Get-Content -Path ($instanceFolders.FullName + '\state.packages.json')
- $state = $stateContent | ConvertFrom-Json
- $WixPackage = $state.packages | where { $_.id -eq "WixToolset.VisualStudioExtension.Dev16" }
- return $WixPackage
-}
-
$WixToolSetVersion = Get-WixVersion
if($WixToolSetVersion) {
@@ -38,22 +21,14 @@ else {
exit 1
}
-$WixPackage = Get-WixExtensionPackage
-
-if($WixPackage) {
- Write-Host "Wix Extension version" $WixPackage.version "installed"
-}
-else {
- Write-Host "Wix Extension is not installed"
- exit 1
-}
+$WixPackageVersion = Get-VS19ExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev16"
# Adding description of the software to Markdown
$SoftwareName = "WIX Tools"
$Description = @"
_Toolset Version:_ $WixToolSetVersion
-_WIX Toolset Visual Studio Extension Version:_ $($WixPackage.version)
+_WIX Toolset Visual Studio Extension Version:_ $WixPackageVersion
_Environment:_
* WIX: Installation root of WIX
"@