使用“2”参数调用“ImportBacPac”的异常:“无法导入包”

时间:2014-09-09 21:26:15

标签: powershell bacpac

我知道早些时候曾经问过这个问题,但我没有看到任何答案,因此再次发布。

作为PS(ver 4.0)importbacpac的一部分,我间歇地遇到以下错误 异常调用" ImportBacPac"用" 2"参数:"无法导入包。"例外是“无效操作”。 该机器有sql 2014,bacpac仅在sql 2014上导出,因此没有不匹配的方式,我们正在使用Windows身份验证进行导入。问题是错误不一致,有时只发生。 知道会发生什么事吗?

添加了代码

function Perform-Restore([string]$DbName, [string]$connectionString, [string]$sqlserverVersion,       [string]$bacpacFilePath)
{
Load-DacFx -sqlserverVersion $sqlserverVersion

$dacServiceInstance = new-object Microsoft.SqlServer.Dac.DacServices ($connectionString)

$bacpacPackageInstance = [Microsoft.SqlServer.Dac.BacPackage]::Load($bacpacFilePath)

try
{
    **$dacServiceInstance.ImportBacpac($bacpacPackageInstance, $DbName)**
}
catch
{
    Throw "Restore Failed"
}
}

function Load-DacFx([string]$sqlserverVersion)
{
  $majorVersion = Get-SqlServerMajoreVersion -sqlServerVersion $sqlserverVersion

  $DacFxLocation = "${env:ProgramFiles(x86)}\Microsoft SQL Server\$majorVersion\DAC\bin\Microsoft.SqlServer.Dac.dll"

try
{  
    [System.Reflection.Assembly]::LoadFrom($DacFxLocation) | Out-Null
}
catch
{
    Throw "$LocalizedData.DacFxInstallationError"
}
}

0 个答案:

没有答案