From bbaf8b92245e1842f026e36583f392770b44f2cc Mon Sep 17 00:00:00 2001
From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com>
Date: Mon, 16 Mar 2020 17:28:46 +0000
Subject: [PATCH] Add SQL Server Data Tools extensions to VS2019 (#559)
* add extensions
* add exe installation
* change Reporting Services name
* add switch to function, add validation
* change install wdk to function
* Fix template
* fix scripts name
* add quotes
* more quotes
* one more quotes
* get rid of duplicate code
* move quotes to function
* small improvment to wix installation
* add comment to validate extensions script
---
images/win/Windows2016-Azure.json | 8 +-
images/win/Windows2019-Azure.json | 12 +--
.../scripts/ImageHelpers/ImageHelpers.psm1 | 5 +-
.../scripts/ImageHelpers/InstallHelpers.ps1 | 92 +++++++++++++------
.../{Windows2019 => }/Install-WDK.ps1 | 50 ++++------
images/win/scripts/Installers/Install-Wix.ps1 | 23 +++++
.../{Windows2019 => }/Validate-WDK.ps1 | 2 +-
.../{Windows2019 => }/Validate-Wix.ps1 | 14 ++-
.../Installers/Windows2016/Install-WDK.ps1 | 51 ----------
.../Installers/Windows2016/Install-Wix.ps1 | 53 -----------
.../Installers/Windows2016/Validate-SSDT.ps1 | 30 +-----
.../Installers/Windows2016/Validate-WDK.ps1 | 13 ---
.../Installers/Windows2016/Validate-Wix.ps1 | 62 -------------
.../Install-AnalysisExtenstion.ps1 | 11 ---
.../Windows2019/Install-SSDTExtensions.ps1 | 11 +++
.../Installers/Windows2019/Install-Wix.ps1 | 14 ---
.../Validate-AnalysisExtenstion.ps1 | 18 ----
.../Windows2019/Validate-SSDTExtensions.ps1 | 22 +++++
18 files changed, 167 insertions(+), 324 deletions(-)
rename images/win/scripts/Installers/{Windows2019 => }/Install-WDK.ps1 (55%)
create mode 100644 images/win/scripts/Installers/Install-Wix.ps1
rename images/win/scripts/Installers/{Windows2019 => }/Validate-WDK.ps1 (90%)
rename images/win/scripts/Installers/{Windows2019 => }/Validate-Wix.ps1 (76%)
delete mode 100644 images/win/scripts/Installers/Windows2016/Install-WDK.ps1
delete mode 100644 images/win/scripts/Installers/Windows2016/Install-Wix.ps1
delete mode 100644 images/win/scripts/Installers/Windows2016/Validate-WDK.ps1
delete mode 100644 images/win/scripts/Installers/Windows2016/Validate-Wix.ps1
delete mode 100644 images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1
create mode 100644 images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1
delete mode 100644 images/win/scripts/Installers/Windows2019/Install-Wix.ps1
delete mode 100644 images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1
create mode 100644 images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1
diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json
index b6aafce8c..326474b21 100644
--- a/images/win/Windows2016-Azure.json
+++ b/images/win/Windows2016-Azure.json
@@ -213,7 +213,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-Wix.ps1"
]
},
{
@@ -229,7 +229,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Install-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-WDK.ps1"
]
},
{
@@ -251,7 +251,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Validate-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-Wix.ps1"
]
},
{
@@ -263,7 +263,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2016/Validate-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-WDK.ps1"
]
},
{
diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json
index c7c0da02c..94da1a0e6 100644
--- a/images/win/Windows2019-Azure.json
+++ b/images/win/Windows2019-Azure.json
@@ -188,13 +188,13 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-Wix.ps1"
]
},
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1"
+ "{{ template_dir }}/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1"
]
},
{
@@ -210,7 +210,7 @@
{
"type": "powershell",
"scripts": [
- "{{ template_dir }}/scripts/Installers/Windows2019/Install-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-WDK.ps1"
]
},
{
@@ -226,13 +226,13 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-Wix.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-Wix.ps1"
]
},
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1"
+ "{{ template_dir }}/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1"
]
},
{
@@ -244,7 +244,7 @@
{
"type": "powershell",
"scripts":[
- "{{ template_dir }}/scripts/Installers/Windows2019/Validate-WDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Validate-WDK.ps1"
]
},
{
diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
index f38e35630..7f48125f2 100644
--- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1
+++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
@@ -19,5 +19,8 @@ Export-ModuleMember -Function @(
'Stop-SvcWithErrHandling'
'Set-SvcWithErrHandling'
'Install-VsixExtension'
- 'Get-VS19ExtensionVersion'
+ 'Get-VSExtensionVersion'
+ 'Get-WinVersion'
+ 'Test-IsWin19'
+ 'Test-IsWin16'
)
diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
index eaabd2368..a0bbe9946 100644
--- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
@@ -165,46 +165,62 @@ function Install-VsixExtension
{
Param
(
- [String]$Url,
- [String]$Name
+ [string] $Url,
+ [Parameter(Mandatory = $true)]
+ [string] $Name,
+ [string] $FilePath,
+ [Parameter(Mandatory = $true)]
+ [string] $VSversion,
+ [int] $retries = 20,
+ [switch] $InstallOnly
)
- $FilePath = "${env:Temp}\$Name"
- $retries = 20
-
- while($retries -gt 0)
+ if (!$InstallOnly)
{
- try
- {
- Write-Host "Downloading $Name..."
- (New-Object System.Net.WebClient).DownloadFile($Url, $FilePath)
- break
- }
- catch
- {
- Write-Host "There is an error during $Name downloading"
- $_
+ $FilePath = "${env:Temp}\$Name"
- $retries--
-
- if ($retries -eq 0)
+ while($retries -gt 0)
+ {
+ try
{
- Write-Host "File can't be downloaded"
- $_
- exit 1
+ Write-Host "Downloading $Name..."
+ (New-Object System.Net.WebClient).DownloadFile($Url, $FilePath)
+ break
}
+ catch
+ {
+ Write-Host "There is an error during $Name downloading"
+ $_
- Write-Host "Waiting 30 seconds before retrying. Retries left: $retries"
- Start-Sleep -Seconds 30
+ $retries--
+
+ if ($retries -eq 0)
+ {
+ Write-Host "File can't be downloaded"
+ $_
+ exit 1
+ }
+
+ Write-Host "Waiting 30 seconds before retrying. Retries left: $retries"
+ Start-Sleep -Seconds 30
+ }
}
}
- $ArgumentList = ('/quiet', $FilePath)
+ $ArgumentList = ('/quiet', "`"$FilePath`"")
Write-Host "Starting Install $Name..."
try
{
- $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VSIXInstaller.exe" -ArgumentList $ArgumentList -Wait -PassThru
+ #There are 2 types of packages at the moment - exe and vsix
+ if ($Name -match "vsix")
+ {
+ $process = Start-Process -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\$VSversion\Enterprise\Common7\IDE\VSIXInstaller.exe" -ArgumentList $ArgumentList -Wait -PassThru
+ }
+ else
+ {
+ $process = Start-Process -FilePath ${env:Temp}\$Name /Q -Wait -PassThru
+ }
}
catch
{
@@ -225,11 +241,14 @@ function Install-VsixExtension
exit 1
}
- #Cleanup installation files
- Remove-Item -Force -Confirm:$false $FilePath
+ #Cleanup downloaded installation files
+ if (!$InstallOnly)
+ {
+ Remove-Item -Force -Confirm:$false $FilePath
+ }
}
-function Get-VS19ExtensionVersion
+function Get-VSExtensionVersion
{
param (
[string] [Parameter(Mandatory=$true)] $packageName
@@ -255,3 +274,18 @@ function Get-VS19ExtensionVersion
return $packageVersion
}
+
+function Get-WinVersion
+{
+ (Get-WmiObject -class Win32_OperatingSystem).Caption
+}
+
+function Test-IsWin19
+{
+ (Get-WinVersion) -match "2019"
+}
+
+function Test-IsWin16
+{
+ (Get-WinVersion) -match "2016"
+}
diff --git a/images/win/scripts/Installers/Windows2019/Install-WDK.ps1 b/images/win/scripts/Installers/Install-WDK.ps1
similarity index 55%
rename from images/win/scripts/Installers/Windows2019/Install-WDK.ps1
rename to images/win/scripts/Installers/Install-WDK.ps1
index b70644370..9df64d914 100644
--- a/images/win/scripts/Installers/Windows2019/Install-WDK.ps1
+++ b/images/win/scripts/Installers/Install-WDK.ps1
@@ -4,8 +4,24 @@
################################################################################
# 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"
+
+Import-Module -Name ImageHelpers -Force
+
+if(Test-IsWin19)
+{
+ $winSdkUrl = "https://go.microsoft.com/fwlink/p/?linkid=2083338"
+ $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2085767"
+ $FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix"
+ $VSver = "2019"
+}
+else
+{
+ $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"
+}
+
# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI
$sdkExitCode = Install-EXE -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
@@ -26,32 +42,4 @@ if ($wdkExitCode -ne 0)
}
# Need to install the VSIX to get the build targets when running VSBuild
-# Write-Host "Installing WDK.vsix"
-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
-
-if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
-{
- Write-Host "WDK.vsix installed successfully"
-}
-else
-{
- Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
-}
-
-exit $exitCode
+Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly
diff --git a/images/win/scripts/Installers/Install-Wix.ps1 b/images/win/scripts/Installers/Install-Wix.ps1
new file mode 100644
index 000000000..076be86c9
--- /dev/null
+++ b/images/win/scripts/Installers/Install-Wix.ps1
@@ -0,0 +1,23 @@
+################################################################################
+## File: Install-Wix.ps1
+## Desc: Install WIX.
+################################################################################
+
+Import-Module -Name ImageHelpers -Force;
+
+choco install wixtoolset -y --force
+
+if(Test-IsWin19)
+{
+ $extensionUrl = "https://wixtoolset.gallerycdn.vsassets.io/extensions/wixtoolset/wixtoolsetvisualstudio2019extension/1.0.0.4/1563296438961/Votive2019.vsix"
+ $VSver = "2019"
+}
+else
+{
+ $extensionUrl = "https://robmensching.gallerycdn.vsassets.io/extensions/robmensching/wixtoolsetvisualstudio2017extension/0.9.21.62588/1494013210879/250616/4/Votive2017.vsix"
+ $VSver = "2017"
+}
+
+$extensionName = "Votive$VSver.vsix"
+#Installing VS extension 'Wix Toolset Visual Studio Extension'
+Install-VsixExtension -Url $extensionUrl -Name $extensionName -VSversion $VSver
diff --git a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1 b/images/win/scripts/Installers/Validate-WDK.ps1
similarity index 90%
rename from images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
rename to images/win/scripts/Installers/Validate-WDK.ps1
index c3c6a8f04..ee64f20b5 100644
--- a/images/win/scripts/Installers/Windows2019/Validate-WDK.ps1
+++ b/images/win/scripts/Installers/Validate-WDK.ps1
@@ -19,7 +19,7 @@ function Get-WDKVersion
}
$WDKVersion = Get-WDKVersion
-$WDKPackageVersion = Get-VS19ExtensionVersion -packageName "Microsoft.Windows.DriverKit"
+$WDKPackageVersion = Get-VSExtensionVersion -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/Validate-Wix.ps1
similarity index 76%
rename from images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
rename to images/win/scripts/Installers/Validate-Wix.ps1
index 4334beb14..d755939d1 100644
--- a/images/win/scripts/Installers/Windows2019/Validate-Wix.ps1
+++ b/images/win/scripts/Installers/Validate-Wix.ps1
@@ -4,6 +4,7 @@
################################################################################
Import-Module -Name ImageHelpers -Force
+
function Get-WixVersion {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
@@ -21,14 +22,23 @@ else {
exit 1
}
-$WixPackageVersion = Get-VS19ExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev16"
+if(Test-IsWin19)
+{
+ $WixPackageVersion = Get-VSExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev16"
+ $VSver = "2019"
+}
+else
+{
+ $WixPackageVersion = Get-VSExtensionVersion -packageName "WixToolset.VisualStudioExtension.Dev15"
+ $VSver = "2017"
+}
# Adding description of the software to Markdown
$SoftwareName = "WIX Tools"
$Description = @"
_Toolset Version:_ $WixToolSetVersion
-_WIX Toolset Visual Studio Extension Version:_ $WixPackageVersion
+_WIX Toolset Studio $VSver Extension Version:_ $WixPackageVersion
_Environment:_
* WIX: Installation root of WIX
"@
diff --git a/images/win/scripts/Installers/Windows2016/Install-WDK.ps1 b/images/win/scripts/Installers/Windows2016/Install-WDK.ps1
deleted file mode 100644
index 58707f973..000000000
--- a/images/win/scripts/Installers/Windows2016/Install-WDK.ps1
+++ /dev/null
@@ -1,51 +0,0 @@
-################################################################################
-## File: Install-WDK.ps1
-## Desc: Install the Windows Driver Kit
-################################################################################
-
-# Version: 10.0.17763.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=2023014"
-$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2026156"
-
-# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI
-$sdkExitCode = Install-EXE -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
-
-if ($sdkExitCode -ne 0)
-{
- Write-Host "Failed to install the Windows SDK."
- exit $sdkExitCode
-}
-
-# `wdksetup.exe /features + /quiet` installs all features without showing the GUI
-$wdkExitCode = Install-EXE -Url $wdkUrl -Name "wdksetup.exe" -ArgumentList ("/features", "+", "/quiet")
-
-if ($wdkExitCode -ne 0)
-{
- Write-Host "Failed to install the Windows Driver Kit."
- exit $wdkExitCode
-}
-
-# Need to install the VSIX to get the build targets when running VSBuild
-Write-Host "Installing WDK.vsix"
-$process = Start-Process `
- -FilePath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VSIXInstaller.exe" `
- -ArgumentList ("/quiet", '"C:\Program Files (x86)\Windows Kits\10\Vsix\WDK.vsix"') `
- -Wait `
- -PassThru
-
-$exitCode = $process.ExitCode
-
-if ($exitCode -eq 0 -or $exitCode -eq 1001) # 1001 means the extension is already installed
-{
- Write-Host "WDK.vsix installed successfully"
-}
-else
-{
- Write-Host "Unsuccessful exit code returned by the installation process: $exitCode."
-}
-
-exit $exitCode
diff --git a/images/win/scripts/Installers/Windows2016/Install-Wix.ps1 b/images/win/scripts/Installers/Windows2016/Install-Wix.ps1
deleted file mode 100644
index 44ee25c2c..000000000
--- a/images/win/scripts/Installers/Windows2016/Install-Wix.ps1
+++ /dev/null
@@ -1,53 +0,0 @@
-################################################################################
-## File: Install-Wix.ps1
-## Desc: Install WIX.
-################################################################################
-function Install-VsixExtension
-{
- Param
- (
- [String]$Url,
- [String]$Name
- )
-
- $exitCode = -1
-
- try
- {
- Write-Host "Downloading $Name..."
- $FilePath = "${env:Temp}\$Name"
-
- Invoke-WebRequest -Uri $Url -OutFile $FilePath
-
- $ArgumentList = ('/quiet', $FilePath)
-
- Write-Host "Starting Install $Name..."
- $process = Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VSIXInstaller.exe' -ArgumentList $ArgumentList -Wait -PassThru
- $exitCode = $process.ExitCode
-
- if ($exitCode -eq 0 -or $exitCode -eq 3010)
- {
- Write-Host -Object 'Installation successful'
- return $exitCode
- }
- else
- {
- Write-Host -Object "Non zero exit code returned by the installation process : $exitCode."
- return $exitCode
- }
- }
- catch
- {
- Write-Host -Object "Failed to install the Extension $Name"
- Write-Host -Object $_.Exception.Message
- return -1
- }
-}
-
-
-choco install wixtoolset -y --force
-
-#Installing VS extension 'Wix Toolset Visual Studio 2017 Extension'
-$exitCode = Install-VsixExtension -Url 'https://robmensching.gallerycdn.vsassets.io/extensions/robmensching/wixtoolsetvisualstudio2017extension/0.9.21.62588/1494013210879/250616/4/Votive2017.vsix' -Name 'Votive2017.vsix'
-
-return $exitCode
diff --git a/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1 b/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1
index 9d9a1c4a4..40444ee17 100644
--- a/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1
+++ b/images/win/scripts/Installers/Windows2016/Validate-SSDT.ps1
@@ -5,39 +5,13 @@
Import-Module -Name ImageHelpers -Force
-function Get-SSDTExtensionPackage {
- $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
- $SsdtPackage = $state.packages | where { $_.id -eq "SSDT" }
- return $SsdtPackage
-}
-
-
-$SsdtPackage = Get-SSDTExtensionPackage
-
-if($SsdtPackage){
- Write-Host "SSDT version" $SsdtPackage.version "installed"
-}
-else {
- Write-Host "SSDT is not installed"
- exit 1
-}
-
+$SSDTPackageVersion = Get-VSExtensionVersion -packageName "SSDT"
# Adding description of the software to Markdown
$SoftwareName = "SQL Server Data Tools for VS 2017"
$Description = @"
-_Version:_ $($SsdtPackage.version)
+_Version:_ $SSDTPackageVersion
The following components are installed:
diff --git a/images/win/scripts/Installers/Windows2016/Validate-WDK.ps1 b/images/win/scripts/Installers/Windows2016/Validate-WDK.ps1
deleted file mode 100644
index f9edf1609..000000000
--- a/images/win/scripts/Installers/Windows2016/Validate-WDK.ps1
+++ /dev/null
@@ -1,13 +0,0 @@
-################################################################################
-## File: Validate-WDK.ps1
-## Desc: Validate the installation of the Windows Driver Kit
-################################################################################
-
-# Adding description of the software to Markdown
-$SoftwareName = "Windows Driver Kit"
-
-$Description = @"
-_Version:_ 10.0.17763.0
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Windows2016/Validate-Wix.ps1 b/images/win/scripts/Installers/Windows2016/Validate-Wix.ps1
deleted file mode 100644
index 090df37a9..000000000
--- a/images/win/scripts/Installers/Windows2016/Validate-Wix.ps1
+++ /dev/null
@@ -1,62 +0,0 @@
-################################################################################
-## File: Validate-Wix.ps1
-## Desc: Validate WIX.
-################################################################################
-
-Import-Module -Name ImageHelpers -Force
-function Get-WixVersion {
- $regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
- $installedApplications = Get-ItemProperty -Path $regKey
- $Version = ($installedApplications | Where-Object { $_.DisplayName -and $_.DisplayName.toLower().Contains("wix") } | Select-Object -First 1).DisplayVersion
- 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.Dev15" }
- return $WixPackage
-}
-
-$WixToolSetVersion = Get-WixVersion
-
-if($WixToolSetVersion) {
- Write-Host "Wix Toolset version" $WixPackage.version "installed"
-}
-else {
- Write-Host "Wix Toolset is not installed"
- 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
-}
-
-
-# Adding description of the software to Markdown
-$SoftwareName = "WIX Tools"
-
-$Description = @"
-_Toolset Version:_ $WixToolSetVersion
-_WIX Toolset Studio 2017 Extension Version:_ $($WixPackage.version)
-_Environment:_
-* WIX: Installation root of WIX
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
diff --git a/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1 b/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1
deleted file mode 100644
index 2d477c187..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-AnalysisExtenstion.ps1
+++ /dev/null
@@ -1,11 +0,0 @@
-###################################################################################
-## File: Install-AnalysisExtenstion.ps1
-## Desc: Install the Microsoft Analysis Services Projects Visual Studio extension
-###################################################################################
-
-Import-Module -Name ImageHelpers -Force;
-
-$extensionUrl = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftAnalysisServicesModelingProjects/2.9.5/vspackage"
-$extensionName = "Microsoft.DataTools.AnalysisServices.vsix"
-
-Install-VsixExtension -Url $extensionUrl -Name $extensionName
diff --git a/images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1 b/images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1
new file mode 100644
index 000000000..8c2a6cd7c
--- /dev/null
+++ b/images/win/scripts/Installers/Windows2019/Install-SSDTExtensions.ps1
@@ -0,0 +1,11 @@
+###################################################################################
+## File: Install-SSDTExtensions.ps1
+## Desc: Install the extensions previously known as SSDT package
+###################################################################################
+
+Import-Module -Name ImageHelpers -Force
+
+Install-VsixExtension -Url 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftAnalysisServicesModelingProjects/2.9.5/vspackage' -Name 'Microsoft.DataTools.AnalysisServices.vsix' -VSversion "2019"
+Install-VsixExtension -Url 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/SSIS/vsextensions/SqlServerIntegrationServicesProjects/3.4/vspackage' -Name 'Microsoft.DataTools.IntegrationServices.exe' -VSversion "2019"
+Install-VsixExtension -Url 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ProBITools/vsextensions/MicrosoftReportProjectsforVisualStudio/2.6.3/vspackage' -Name 'Microsoft.DataTools.ReportingServices.vsix' -VSversion "2019"
+
diff --git a/images/win/scripts/Installers/Windows2019/Install-Wix.ps1 b/images/win/scripts/Installers/Windows2019/Install-Wix.ps1
deleted file mode 100644
index 918217c5a..000000000
--- a/images/win/scripts/Installers/Windows2019/Install-Wix.ps1
+++ /dev/null
@@ -1,14 +0,0 @@
-################################################################################
-## File: Install-Wix.ps1
-## Desc: Install WIX.
-################################################################################
-
-Import-Module -Name ImageHelpers -Force;
-
-choco install wixtoolset -y --force
-
-$extensionUrl = "https://wixtoolset.gallerycdn.vsassets.io/extensions/wixtoolset/wixtoolsetvisualstudio2019extension/1.0.0.4/1563296438961/Votive2019.vsix"
-$extensionName = "Votive2019.vsix"
-
-#Installing VS extension 'Wix Toolset Visual Studio 2019 Extension'
-Install-VsixExtension -Url $extensionUrl -Name $extensionName
diff --git a/images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1 b/images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1
deleted file mode 100644
index fad85d512..000000000
--- a/images/win/scripts/Installers/Windows2019/Validate-AnalysisExtenstion.ps1
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-## File: Validate-AnalysisExtenstion.ps1
-## Desc: Validate Microsoft Analysis Services Projects Visual Studio extension
-################################################################################
-
-Import-Module -Name ImageHelpers -Force
-
-#AnalysisPackage doesn't have any proper name in the state.packages.json file, only id is available
-$AnalysisPackageVersion = Get-VS19ExtensionVersion -packageName "04a86fc2-dbd5-4222-848e-911638e487fe"
-
-# Adding description of the software to Markdown
-$SoftwareName = "Microsoft Analysis Services Projects Visual Studio Extension"
-
-$Description = @"
-_Version:_ $AnalysisPackageVersion
-"@
-
-Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
\ No newline at end of file
diff --git a/images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1 b/images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1
new file mode 100644
index 000000000..731c10edc
--- /dev/null
+++ b/images/win/scripts/Installers/Windows2019/Validate-SSDTExtensions.ps1
@@ -0,0 +1,22 @@
+################################################################################
+## File: Validate-SSDTExtensions.ps1
+## Desc: Validate SQL Server Data Tools Visual Studio extensions
+################################################################################
+
+Import-Module -Name ImageHelpers -Force
+
+#These extensions don't have any proper name in the state.packages.json file, only id is available, which can be found on extension marketplace download page
+$AnalysisPackageVersion = Get-VSExtensionVersion -packageName "04a86fc2-dbd5-4222-848e-911638e487fe"
+$IntegrationPackageVersion = Get-VSExtensionVersion -packageName "851E7A09-7B2B-4F06-A15D-BABFCB26B970"
+$ReportingPackageVersion = Get-VSExtensionVersion -packageName "717ad572-c4b7-435c-c166-c2969777f718"
+
+# Adding description of the software to Markdown
+$SoftwareName = "Microsoft SSDT Visual Studio 2019 Extensions"
+
+$Description = @"
+_Microsoft Analysis Services Projects Version:_ $AnalysisPackageVersion
+_SQL Server Integration Services Projects Version:_ $IntegrationPackageVersion
+_Microsoft Reporting Services Projects Version:_ $ReportingPackageVersion
+"@
+
+Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description