Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 使用“2”参数调用“ImportBacPac”时出现异常:“无法导入包”_Powershell_Bacpac - Fatal编程技术网

Powershell 使用“2”参数调用“ImportBacPac”时出现异常:“无法导入包”

Powershell 使用“2”参数调用“ImportBacPac”时出现异常:“无法导入包”,powershell,bacpac,Powershell,Bacpac,我知道早些时候有人问过这个问题,但我看不到任何答案,因此我再次发帖 作为PSver 4.0 importbacpac的一部分,我间歇性地遇到以下错误 使用2个参数调用ImportBacPac时出现异常:无法导入包。例外情况是“无效操作”。 该机器具有sql 2014,bacpac仅在sql 2014上导出,因此没有不匹配的情况,我们使用windows身份验证进行导入。问题是错误并不一致,只是偶尔发生。 知道这里会发生什么吗 添加代码 function Perform-Restore([strin

我知道早些时候有人问过这个问题,但我看不到任何答案,因此我再次发帖

作为PSver 4.0 importbacpac的一部分,我间歇性地遇到以下错误 使用2个参数调用ImportBacPac时出现异常:无法导入包。例外情况是“无效操作”。 该机器具有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"
}
}

请包括您的代码。我无法从错误消息中为您提供帮助。在原始帖子中添加了代码。我已经发布了代码,现在有什么想法吗?我唯一能想到的是将Load DacFx函数移到Perform Restore之上,因为当第一次调用Load DacFx时,该函数尚未定义。它只是在稍后定义,但是从内部调用执行恢复,所以我想这不是问题所在。