2016-09-21 4 views
2

У нас есть несколько клиентов, у которых на своих серверах есть разные версии баз данных. Некоторые клиенты используют SQL Server 2008, некоторые SQL Server 2012, а некоторые клиенты используют SQL Server 2014.Создание файлов dacpac всей версии SQL Server в одиночной версии

У меня есть проект SSDT в моем решении Visual Studio 2015.

Для развертывания производства, сначала мы запрашиваем у клиента версию SQL Server & в соответствии с этой версией, мы предоставляем клиенту подходящий файл .dacpac.

Каждый раз, когда на билде проекта SSDT это только создает один .dacpac файла в папке вывода для выбранной «целевой платформы» версии (проект SSDT> Свойства> Параметры проекта> Целевая платформа)

  • If SQL Server 2008 выбран в качестве целевой платформы - один .dacpac файл создается для SQL Server 2008

  • Если SQL Server 2012 выбран в качестве целевой платформы - один .dacpac файл создается для SQL Server 2012

Есть ли способ создать несколько файлов .dacpac для всей версии в единой сборке без изменения настройки «Целевая платформа» вручную?

С помощью события pre/post build или с использованием какого-либо файла Exe?

Спасибо.

ответ

1

У меня была аналогичная вещь, когда мне нужен был один проект для работы над несколькими версиями, так как мне удалось установить его для самой низкой версии, которую вы поддерживаете (мне нужны только 2007r2 и 2012, так что это было не слишком сложно). Затем, когда я развернулся, я установил значение «AllowIncompatiblePlatform» в true.

Другим способом является открытие dacpac в виде zip-файла или использование System.Packaging .net api и изменение версии в файле model.xml.

Я также писал о некоторых трудностях, вы, вероятно, уже знаете о том, когда вы не управлять базой данных развертывается в:

https://the.agilesql.club/blogs/Ed-Elliott/2016-09-20/Database-Deployments-Where-A-Customer-Manages-The-Database

Если вы решили изменить версию внутри dacpac дайте мне знать и я покажу вам, как это сделать, но это означает, что вы пропускаете фазу сборки, которая не идеальна.

Ed шашка

+1

совместимость не должны жаловаться на развертывание dacpac построен в 2008 году к экземпляру сервера в 2012 или более поздней версии SQL. AllowIncompatiblePlatform предназначена для сценариев низкого уровня. –

Смежные вопросы