Files
runner-images-sangeeth/images/win/scripts/SoftwareReport/SoftwareReport.VisualStudio.psm1
Mikhail Timofeev cd4ecad2e6 [Windows] Install vsix extensions using CDN endpoint (#3244)
* Install extensions for VS19

* Get vsix packages name in runtime

* add a bit of debug

* Get extension id from the marketplace uri

* Add extension name

* skip vcredist installation

* Add Get-VsixExtenstionFromMarketplace to ImageHelpers.psm1

* Fix DownloadUri name in the function

* DownloadUri in lower case

* Add packages to the readme

* Add a condition to software report

* fix spelling in function

* Simplify toolset + get rid of backticks
2021-04-23 19:38:43 +03:00

58 lines
2.2 KiB
PowerShell

function Get-VisualStudioVersion {
$vsVersion = vswhere -format json | ConvertFrom-Json
[PSCustomObject]@{
Name = $vsVersion.displayName
Version = $vsVersion.installationVersion
Path = $vsVersion.installationPath
}
}
function Get-WixVersion {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
($installedApplications | Where-Object { $_.DisplayName -match "wix" } | Select-Object -First 1).DisplayVersion
}
function Get-WDKVersion {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
($installedApplications | Where-Object { $_.DisplayName -eq 'Windows Driver Kit' } | Select-Object -First 1).DisplayVersion
}
function Get-VisualStudioExtensions {
# Additional vsixs
$toolset = Get-ToolsetContent
$vsixUrls = $toolset.visualStudio.vsix
if ($vsixUrls)
{
$vsixs = $vsixUrls | ForEach-Object {
$vsix = Get-VsixExtenstionFromMarketplace -ExtensionMarketPlaceName $_
$vsixVersion = (Get-VisualStudioPackages | Where-Object {$_.Id -match $vsix.VsixId -and $_.type -eq 'vsix'}).Version
@{
Package = $vsix.ExtensionName
Version = $vsixVersion
}
}
}
# Wix
$vs = (Get-VisualStudioVersion).Name.Split()[-1]
$wixPackageVersion = Get-WixVersion
$wixExtensionVersion = (Get-VisualStudioPackages | Where-Object {$_.Id -match 'WixToolset.VisualStudioExtension.Dev' -and $_.type -eq 'vsix'}).Version
# WDK
$wdkPackageVersion = Get-VSExtensionVersion -packageName 'Microsoft.Windows.DriverKit'
$wdkExtensionVersion = Get-WDKVersion
$extensions = @(
$vsixs
@{Package = 'Windows Driver Kit'; Version = $wdkPackageVersion}
@{Package = 'Windows Driver Kit Visual Studio Extension'; Version = $wdkExtensionVersion}
@{Package = 'WIX Toolset'; Version = $wixPackageVersion}
@{Package = "WIX Toolset Studio $vs Extension"; Version = $wixExtensionVersion}
)
$extensions | Foreach-Object {
[PSCustomObject]$_
} | Select-Object Package, Version | Sort-Object Package
}