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..44cafa252 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,31 @@ Hashtable for service arguments } } } + +function Get-VS19ExtensionVersion +{ + param ( + [string] [Parameter(Mandatory=$true)] $packageName + ) + + $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 + $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/Validate-WDK.ps1 b/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1 index 7d1a3bf0c..c3c6a8f04 100644 --- a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1 +++ b/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1 @@ -3,28 +3,7 @@ ## Desc: Validate the installation of the Windows Driver Kit ################################################################################ -function Get-WDKExtensionPackage { - $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 - $WDKPackageVersion = ($state.packages | where { $_.id -eq "Microsoft.Windows.DriverKit" }).version - - if (!$WDKPackageVersion) - { - Write-Host "WDK package for Visual studio was not found" - exit 1 - } - - return $WDKPackageVersion -} +Import-Module -Name ImageHelpers -Force function Get-WDKVersion { @@ -40,7 +19,7 @@ function Get-WDKVersion } $WDKVersion = Get-WDKVersion -$WDKPackageVersion = Get-WDKExtensionPackage +$WDKPackageVersion = Get-VS19ExtensionVersion -packageName "Microsoft.Windows.DriverKit" # Adding description of the software to Markdown $SoftwareName = "Windows Driver Kit" 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 "@