Один из наших серверов сборки был только что обновлен до последней версии «Microsoft SQL Server Update для инструментов базы данных» (версия 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) строится без ошибок, но когда мы пытаемся развернуть .dacpac на целевом сервере с помощью SqlPackage.exe, мы получаем следующую ошибку:
The Element or Annotation class PersistedResolvableAnnotation does
not contain the Property class Length.
Разумеется, сравнивая файлы model.xml (внутри .dacpac) на предмет успешной сборки с этой последней, я вижу дополнительные свойства «Длина» и «Смещение» под некоторыми элементами аннотации:
<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 (и есть другие признаки этой же проблемы в Интернете), но мой вопрос: как мне решить эту проблему?
Я бы предпочел не переходить на предыдущую версию SSDT, но при необходимости сделаю это. Следует ли мне установить последнюю платформу приложений уровня данных и вместо этого использовать его SqlPackage.exe? Или установить Visual Studio 2015?