Я пытаюсь развернуть файл DACPAC с помощью Azure Runbook Automation, используя последнюю версию «Microsoft.SqlServer.Dac.dll», которая заархивирована, а затем загружена в виде модуля в учетную запись службы автоматизации Azure. Я могу правильно получить доступ к этому файлу DLL. Однако, когда я пытаюсь запустить приведенный ниже код, я получаю сообщение об ошибке:
Add-Type -Path "C:\Modules\User\Microsoft.SqlServer.Dac\Microsoft.SqlServer.Dac.dll"
$dacService = New-Object Microsoft.SqlServer.dac.dacservices("Server=tcp:xxxx.database.windows.net,1433;Initial Catalog=testdatabase;Persist Security Info=False;User ID=xxxxxx;Password=xxxxx@12345;")
$dacPackage = [Microsoft.SqlServer.Dac.DacPackage]::Load($env:TEMP + "\SQL.dacpac")
$dacService.deploy($dacPackage,"testdatabase",$true,$options,$null)
Я получаю следующую ошибку во 2-й строке -
New-Object: исключение, вызывающее «.ctor» с аргументом (-ами) «1»: «Тип ?> Initializer для« Microsoft.SqlServer.Dac.DacServices »вызвал исключение». At >line:98 char:15 + ... acService = New-Object >Microsoft.SqlServer.dac.dacservices("Server=tc ... + >~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Информация о категории: >InvalidOperation: (: ) [New-Object], MethodInvocationException + >FullyQualifiedErrorId: >ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
Есть идеи, что может пойти не так? Тот же код отлично работает, когда я выполняю его на своем Powershell локально. Файл DACPAC создается с использованием Базы данных SQL Azure версии 12 в качестве целевой платформы. Кроме того, файл DLL является последним из SSMS 17.2.
$dacServices = New-Object Microsoft.SqlServer.Dac.DacServices ("data source=" + $tagetServer + ";Database=" + $databaseName + "; Trusted_connection=true")
- person Hackerman   schedule 16.08.2017