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, 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 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'