inf*_*ity 11 sql-server powershell dac azure-powershell azure-sql-database
我正在使用PowerShell将Visual Studio 2012上构建的dacpac部署到SQL Azure,并运行我认为可能与某些版本不兼容的问题.当我从visual studio执行时,发布工作正常,但是当我使用PowerShell执行它时抛出异常.
这是我在Powershell中所做的
[System.Reflection.Assembly]::Load("Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91") | out-null
[System.Reflection.Assembly]::Load("Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91") | out-null
[System.Reflection.Assembly]::Load("Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91") | out-null
[System.Reflection.Assembly]::Load("Microsoft.SqlServer.Management.Dac, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91") | out-null
Trap
{
PrintException($_.Exception);
$fileStream.Close()
return;
}
$sqlServerFullName = $sqlServerName + ".database.windows.net"
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($sqlServerFullName, $adminLogin, $admingPwd)
$serverconnection.Connect()
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
Write-Host "Reading contents from $dacpacPath..."
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
Run Code Online (Sandbox Code Playgroud)
上面代码中的最后一行是崩溃的以下错误(内部异常值)而不是继续进行
The stream cannot be read to construct the DacType.
There is an error in XML document (2, 2).
<DacType xmlns='http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/0
2'> was not expected.
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的PowerShell ISE的$ PSVersionTable
Name Value
---- -----
PSVersion 2.0
PSCompatibleVersions {1.0, 2.0}
BuildVersion 6.1.7601.17514
CLRVersion 4.0.30319.17929
WSManStackVersion 2.0
PSRemotingProtocolVersion 2.1
SerializationVersion 1.1.0.1
Run Code Online (Sandbox Code Playgroud)
想知道当我使用Powershell进行部署时,当我使用visual studio 2012进行部署时,可能会导致此问题
PS - powershell部署使用相同的脚本和我在互联网上找到的dacpac文件工作正常,该文件显然是针对SQL 2005版本的
尝试使用 sqlpackage.exe 和 Publish.xml 进行发布
Invoke-Expression = "C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe /Action:Publish /Sourcefile:<.dacpac file_path> /pr:'<Publish.xml>'"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3789 次 |
| 最近记录: |