我想这将是一个相当主流的场景,但我无法找到如何导入导出Azure的SQL数据库(.bacpac)到我的LocalDB中的Visual Studio 2013.我错过了什么或Visual Studio缺少什么?
(注意:有一个解决方案,当有一个SQL Server管理工作室,但我没有它,如果可能的话,不想安装它.)
我的机器有当前(2014 年 3 月)版本的 SSDT、Visual Studio 2012 Professional 和 SQL Server 2014 Developer。我有一个MyProject.sqlproj针对 SQL Server 2014的 SQL Server 项目(我们称之为)。我尝试了以下操作:
MsBuild.exe MyProject.sqlproj
/t:SqlPublish /p:SqlPublishProfilePath=Somewhere.publish.xml
Run Code Online (Sandbox Code Playgroud)
这失败并出现以下错误:
部署错误 部署 72002:内部错误。
类型为 Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider 的数据库平台服务无效。您必须确保服务已加载,或者您必须提供有效数据库平台服务的完整类型名称。
如果我将此项目切换到目标 2012(并指向 2012 实例),则相同的命令会成功运行。我之前问过一个可能相关的问题,那里的答案解决了我的问题,但这不是这里的问题——如果我SqlPackage.exe直接使用,我可以成功发布这个 2014 DACPAC 。
发生了什么,我该如何解决?
我正在开发一个在客户机上部署dacpac的.Net应用程序.为此,我需要SqlPackage.exe来部署dacpac.我需要一个SqlPackage.exe的绝对路径来使我的应用程序工作,而不管客户端的机器配置如何.
你能帮助我实现这个目标吗?
谢谢,Yogesh
我们的一个构建服务器刚刚更新到最新的“用于数据库工具的 Microsoft SQL Server 更新”(版本 12.0.60629.0),现在与我们拥有的 SqlPackage.exe 版本不兼容(在 C:\Program Files (x86) 中) \Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\SqlPackage.exe)。SQL Server 数据库项目(针对 SQL Server 2014)构建没有错误,但是当我们尝试使用 SqlPackage.exe 将 .dacpac 部署到目标服务器时,我们收到以下错误:
The Element or Annotation class PersistedResolvableAnnotation does
not contain the Property class Length.
Run Code Online (Sandbox Code Playgroud)
果然,将 model.xml 文件(在 .dacpac 内)与最新版本的成功构建进行比较,我在一些 Annotation 元素下看到了额外的“Length”和“Offset”属性:
<Annotation Type="PersistedResolvableAnnotation" Name="[$(MyLinkedServer)].[$(MyDatabase)]|[dbo].[SomeTableName]">
<Property Name="TargetTypeStorage" Value="ISqlSynonymTarget" />
<Property Name="Length" Value="63" />
<Property Name="Offset" Value="37" />
</Annotation>
Run Code Online (Sandbox Code Playgroud)
这些构建服务器只有 Visual Studio 2012 和 2013,而不是2015。很明显,这个最新的 SSDT 更新破坏了与 SqlPackage 的兼容性(并且网上还有其他迹象表明同一问题),但我的问题是:我该如何解决它?
我宁愿不尝试降级到以前的 SSDT 版本,但会在必要时这样做。我应该安装最新的数据层应用程序框架并改用其 …