У нас есть функция ниже, которая развертывает dacpac. Я смотрел, как передавать переменные для dacpac. Это возможно?Развертывание dacpac с переменной подстановкой с powershell
Function DeployDB {
param(
[string]$SqlServerName = $(throw "Missing required parameter SqlServerName"),
[string]$SqlServerUserName = $(throw "Missing required parameter SqlServerUserName"),
[string]$SqlServerPassword = $(throw "Missing required parameter SqlServerPassword"),
[string]$dacpac = $(throw "Missing required parameter dacpac"),
[string]$dbname = $(throw "Missing required parameter dbname")
)
Write-Host "Deploying the DB with the following settings"
Write-Host "Server Name: $SqlServerName"
Write-Host "DACPAC: $dacpac"
Write-Host "Name: $dbname"
# load in DAC DLL, This requires config file to support .NET 4.0.
# change file location for a 32-bit OS
#make sure you
add-type -path "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.SqlServer.Dac.dll"
# Create a DacServices object, which needs a connection string
$dacsvcs = new-object Microsoft.SqlServer.Dac.DacServices "server=$SqlServerName;User ID=$SqlServerUserName;Password=$SqlServerPassword;"
# register event. For info on this cmdlet, see http://technet.microsoft.com/en-us/library/hh849929.aspx
register-objectevent -in $dacsvcs -eventname Message -source "msg" -action { out-host -in $Event.SourceArgs[1].Message.Message } | Out-Null
# Load dacpac from file & deploy database
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($dacpac)
$dacsvcs.Deploy($dp, $dbname, $true)
# clean up event
unregister-event -source "msg"
}
Не могли бы вы рассказать о том, что вы подразумеваете под переменными pass для dacpac? Кстати, вышеуказанный путь использует очень старую версию DACFx. Самая новая версия (доступна здесь: https://www.microsoft.com/en-us/download/details.aspx?id=53013) устанавливается в папку SQL Server \ 130 \ DAC \ bin. –
Отсутствующие значения для следующих переменных SqlCmd: DeploymentName. (Microsoft.Data.Tools.Schema.Sql) У нас есть одна переменная, которая должна быть передана – MrBeanzy
Вам больше не нужно устанавливать SQLPackage, они выпустили пакет NuGet, который его содержит. Посмотрите здесь https://www.nuget.org/packages/Microsoft.Data.Tools.Msbuild –