From 260877abbbb196b4f3196a81d3a3442119913c29 Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 26 Mar 2024 10:53:53 +0100 Subject: [PATCH 1/3] Check DAC folder for DacFX presence and version fixes #1225 tested and confirmed locally with: . "$PSScriptRoot/SqlPackageOnTargetMachines.ps1" Get-SqlPackageOnTargetMachine --- .../SqlPackageOnTargetMachines.ps1 | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/TaskModules/powershell/TaskModuleSqlUtility/SqlPackageOnTargetMachines.ps1 b/TaskModules/powershell/TaskModuleSqlUtility/SqlPackageOnTargetMachines.ps1 index 04c1304b6..7ad39dbae 100644 --- a/TaskModules/powershell/TaskModuleSqlUtility/SqlPackageOnTargetMachines.ps1 +++ b/TaskModules/powershell/TaskModuleSqlUtility/SqlPackageOnTargetMachines.ps1 @@ -319,6 +319,15 @@ function LocateSqlPackageFromVSInstallationRoot { $sqlDacRoot = [System.IO.Path]::Combine($VSInstallRoot, "Extensions", "Microsoft", "SQLDB", "DAC") if (Test-Path $sqlDacRoot) { + $dacVersion = GetDacFxMajorVersion $sqlDacRoot + $dacFullPath = [System.IO.Path]::Combine($sqlDacRoot, "SqlPackage.exe") + + if(Test-Path $dacFullPath -pathtype leaf) + { + Write-Verbose "Dac Framework installed with Visual Studio found at $dacFullPath on machine $env:COMPUTERNAME" + return $dacFullPath, $dacVersion + } + $sqlDacLocations = Get-ChildItem $sqlDacRoot | Sort-Object @{e={$_.Name -as [int]}} -Descending foreach ($sqlDacLocation in $sqlDacLocations) @@ -340,6 +349,37 @@ function LocateSqlPackageFromVSInstallationRoot { return $null, 0 } +function GetDacFxMajorVersion { + [CmdletBinding()] + Param ( + [string] $path + ) + try { + $file = [System.IO.Path]::Combine($sqlDacRoot, "Microsoft.SqlServer.Dac.dll") + + Write-Verbose "Getting version info for file $file." + + if (Test-Path -LiteralPath $file -PathType 'Leaf') { + + $fileVersionInfo = (Get-Command -Name $file -ErrorAction 'Stop').FileVersionInfo + $fileVersion = $fileVersionInfo.FileVersion + + if ($fileVersion) { + $version = [version]$fileVersion + Write-Verbose "Major product version is $($version.Major)." + return $version.Major + } + + return 0 + } + } + catch { + Write-Verbose "Failed to get version info for $file" + + return 0 + } +} + function LocateSqlPackageInVS([string] $version) { $vsRegKeyForVersion = "SOFTWARE", "Microsoft", "VisualStudio", $version -join [System.IO.Path]::DirectorySeparatorChar From 6c0d6160634196e1831dc1046a5c530ab745482b Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 26 Mar 2024 10:54:51 +0100 Subject: [PATCH 2/3] Bump version --- .../powershell/TaskModuleSqlUtility/TaskModuleSqlUtility.psd1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TaskModules/powershell/TaskModuleSqlUtility/TaskModuleSqlUtility.psd1 b/TaskModules/powershell/TaskModuleSqlUtility/TaskModuleSqlUtility.psd1 index b84cf50b1..b70a9b486 100644 --- a/TaskModules/powershell/TaskModuleSqlUtility/TaskModuleSqlUtility.psd1 +++ b/TaskModules/powershell/TaskModuleSqlUtility/TaskModuleSqlUtility.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'TaskModuleSqlUtility.psm1' - ModuleVersion = '0.1.3' + ModuleVersion = '0.1.4' GUID = 'd997c6dd-33ad-481c-859b-01120229b91f' Author = 'Microsoft' CompanyName = 'Microsoft' From d2447ea10d788e07f3ee06570a3c2028ef39bf7f Mon Sep 17 00:00:00 2001 From: Erik Ejlskov Jensen Date: Tue, 26 Mar 2024 12:10:41 +0100 Subject: [PATCH 3/3] Bump more versions --- .../Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV1/task.json | 2 +- .../Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV2/task.json | 2 +- Extensions/IISWebAppDeploy/Src/vss-extension.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV1/task.json b/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV1/task.json index a36ca7256..2b9084b66 100644 --- a/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV1/task.json +++ b/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV1/task.json @@ -16,7 +16,7 @@ "version": { "Major": 1, "Minor": 5, - "Patch": 0 + "Patch": 1 }, "demands": [ ], diff --git a/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV2/task.json b/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV2/task.json index 7e314fe1e..8aedf4035 100644 --- a/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV2/task.json +++ b/Extensions/IISWebAppDeploy/Src/Tasks/SqlDacpacDeploy/SqlDacpacDeployV2/task.json @@ -16,7 +16,7 @@ "version": { "Major": 2, "Minor": 2, - "Patch": 0 + "Patch": 1 }, "demands": [ ], diff --git a/Extensions/IISWebAppDeploy/Src/vss-extension.json b/Extensions/IISWebAppDeploy/Src/vss-extension.json index 3a9961edc..06c1afd40 100644 --- a/Extensions/IISWebAppDeploy/Src/vss-extension.json +++ b/Extensions/IISWebAppDeploy/Src/vss-extension.json @@ -2,7 +2,7 @@ "manifestVersion": 1, "extensionId": "iiswebapp", "name": "IIS Web App Deployment Using WinRM", - "version": "1.7.0", + "version": "1.7.1", "publisher": "ms-vscs-rm", "description": "Using WinRM connect to the host Computer, to deploy a Web project using Web Deploy or a SQL DB using sqlpackage.exe.", "public": true,