- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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)
上面代码中的最后一行是因以下错误(内部异常值)而崩溃并且不再继续进行的内容
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.
这是我正在使用的 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
想知道当我使用 Powershell 部署时可能会导致此问题,而当我使用 Visual Studio 2012 部署它时它工作正常
附注- 使用与我在互联网上找到的 dacpac 文件相同的脚本,powershell 部署工作正常,该文件显然是针对 SQL 2005 版本的
最佳答案
如果您安装了最新的 SSDT 2015 ( https://msdn.microsoft.com/en-us/mt186501 )。我强烈推荐它,因为它有很多有用的发布配置文件选项,可以使用 Visual Studio 生成。
您可以使用以下命令通过 Powershell 将文件发布到 Azure
$sqlpackage = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\sqlpackage.exe"
$dbserver = "<Azure DB Location>"
$database = "<name of DB on Server>"
# UNC Paths
$dbProfile = "<Path to your Publish Profile>"
$mydacpac = "<location of the dacpac>"
# Publish Command
& $sqlpackage /Action:Publish /tsn:$dbServer /tdn:$database /sf:$mydacpac/pr:$dbProfile /variables:myVariable=1
PS : & 与 Pradebban 提到的 Invoke-Expression 类似
关于sql-server - 用于 DACPAC 部署的 SQL Azure 和 Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14631941/
环境: 使用 Visual Studio 2013 Update 4 中的 SQL Server 数据库工具创建用于发布数据库的 DacPac。 使用 TFS 构建来构建和删除数据库项目。 使用 Sq
我正在用数据在表 xxx 中删除一列。 DACPAC 正在生成如下检查。 IF EXISTS (select top 1 1 from [dbo].[xxx]) RAISERROR (N'Ro
我有一个 dacpac 文件,我正在使用 DacServices 库通过应用程序进行部署。我有以下代码可以做到这一点: var dp = DacPackage.Load(dacpacPath); va
我们希望将 dbproj 升级为 sqlproj,以便我们可以将其指向新的 SQL 2012 数据库。目前我们有一个程序可以读取 .dbschema xml 文件以查找所有表和列并从中检索信息。我们使
我正在做一些自动化,并且正在将一些 10-15 个古怪的旧脚本重写为一个简单的单元,这可以: 生产环境MsSql2012数据库方案导出 在开发环境中将数据库方案导入MsSql2012 我使用 Micr
我有一个 .dacpac 文件,它被 MSBuild 调用并发布到 QA 数据库进行测试。此发布失败,我从他们那里得到的错误是一般的“发生错误”消息。我希望我可以从 dacpac 生成部署脚本并遍历它
我正在尝试使用 sqlpackage.exe 在租户上部署 dacpac。 目前,我正在向将部署它的帐户授予 SysAdmin 或 db_owner 权限,并且它工作正常。 但是在生产中,如果目标租户
是否可以在不部署 DACPAC 的情况下针对数据库测试它?如果没有发现错误,Action=Deploy 的 sqlpackage.exe 将部署它,Action=Report 将只生成包含更改列表的报
我使用生成的版本号从自动构建生成 DACPAC 文件。虽然在 sqlpackager 操作期间很有用,但我需要能够在对文件执行任何操作之前确定 DACPAC 的版本号。 我可以使用什么工具(当然是自动
我想阅读 DACPAC 的内容以获取架构、表等的列表。 最佳答案 是的。您可以使用 DacFx为了这。 DacFx Public Model Tutorial : // Load from a d
我有一个 Visual Studio 2013 SQL 数据库项目,它创建了一个 DACPAC 文件,用于使用 SQL Server Management Studio (SSMS) 中的“部署数据层
我很高兴编写了一个使用以下内容的产品:Sql Server 数据库项目和生活一直很美好,直到我们发现升级中存在问题。 当我们创建表、存储过程和各种其他数据库工件时,一旦部署在客户处,他们就可以将自己的
当我尝试发布数据库项目时,在创建发布预览...时,出现此错误:找不到文件“C:...[DatabaseProjName]\sql\debug[DatabaseProjName].dacpac”。我如何
我有一个 SSDT(Sql Server 数据库项目),它引用外部 .dll(C# 类库)以提供一些 CLR 功能。如果我在本地部署/发布一切正常,但远程使用 Microsoft.SqlServer.
这个问题在这里已经有了答案: How to include created database project created dacpac into a cs project (3 个答案) 关闭
我正在尝试通过 IIS 网站和 SQL 部署在 Azure DevOps 中部署我的项目。但是,我正在努力部署 SQL 部分,因为我的构建工件中没有 .dacpac 文件。我如何生成它,因为我尝试过的
原始问题: 尝试使用 .dacpac 文件升级在测试 VM 中创建的空白数据库,但收到以下错误消息: Error SQL72014: .Net SqlClient Data Provider: Msg
我有一个 VS2012 数据库项目,其中包括表、存储过程、 View 等。 然后我有第二个数据库项目,其中包含对第一个项目的数据库引用。我确保从“项目属性 -> 调试 -> 高级”菜单中选择了“包含复
我找不到有关如何在 dacpac 中打包部署贡献者的任何引用资料。 我们正在使用 DacServices.Deploy Method将我们的数据库作为 dacpacs 部署到 SQL Server。
我向供应商提供了 SQL-Server 数据库的备份,他们进行了更改并向我寄回了 DACPAC。如果我使用 SQLPackage.exe 将该 DACPAC 部署到原始数据库,它会删除我表中的数据
我是一名优秀的程序员,十分优秀!