【发布时间】:2017-01-14 05:44:14
【问题描述】:
我们的一个构建服务器刚刚更新到最新的“用于数据库工具的 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.
果然,将 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>
这些构建服务器只有 Visual Studio 2012 和 2013,没有 2015。很明显,这个最新的 SSDT 更新破坏了与 SqlPackage 的兼容性(还有其他 indications 在线相同问题),但我的问题是:我该如何解决?
我宁愿不尝试降级到以前的 SSDT 版本,但如有必要,我会这样做。我应该安装latest Data-Tier Application Framework 并改用它的 SqlPackage.exe 吗?还是安装 Visual Studio 2015?
【问题讨论】:
标签: sql-server sql-server-2014 sql-server-data-tools sqlpackage