Проблема с проектом базы данных (DACPAC) - продолжение доставки
У меня есть процесс сборки Microsoft TFS для развертывания веб-проекта на Azure Web-роль, это происходит автоматически каждый день. Я следил за статьей Azure https://azure.microsoft.com/en-in/documentation/articles/cloud-services-dotnet-continuous-delivery/
У меня есть следующие аргументы MSBuild в моем процессе сборки, как предложенная выше статья
/t:Publish /p:PublishDir=C:\MSCD\
Когда я добавляю проект базы данных в свое проектное решение, сборка продолжает сбой. Получение сообщения об ошибке
Задаче "SqlPublishTask" не задано значение для обязательного параметра "SqlPublishProfilePath"
Когда я публикую свой веб-проект, я не хочу, чтобы проект базы данных был опубликован. Как удалить файл DACPAC в папку dropfolder? так что я могу использовать PowerShell для обновления моей базы данных в Azure.
Я использую TFS 2012 On-Premise. Может ли кто-нибудь дать предложение, как решить эту проблему?
1 ответ
Вам необходимо создать определения сборки Master-child и в определении master build сконфигурировать решение с отключенной сборкой и развертыванием в менеджере конфигурации. И только в проекте конфигурации базы данных child build.
Создайте определение Master и дочерней сборки так, чтобы они разделяли общее падение
Ответ @Siva Palla решил ту же самую проблему для меня. Вот полный набор изменений, которые мы сделали, чтобы заставить это работать.
Изменения в Visual Studio
Первоначально я использовал одну конфигурацию под названием "Развертывание", которая была настроена для развертывания как нашего проекта WinForms, так и нашего проекта SQL (VisionShellWin - это проект WinForms, два проекта Vision.SQLMigration - это проекты SSDT), поэтому все, что ниже, основано на изменениях в Развертывание. Для большинства людей у вас будет Выпуск вместо Развертывания, все перечисленное ниже должно работать нормально, просто замените Выпуск на Развертывание:
Чтобы разделить эту единственную конфигурацию на две, я создал новую конфигурацию:
Я установил это новое развертывание для копирования его настроек из старой конфигурации развертывания, а не для создания новых конфигураций для каждого из проектов (существующие варианты развертывания уровня проекта подходят):
В этом новом развертывании я снял флажки "Построить и развернуть проекты базы данных":
Затем я снова сделал то же самое, чтобы создать развертывание для конкретной базы данных:
И в этом я снял все, кроме файлов базы данных:
Это все, что нужно в Visual Studio, поэтому я зафиксировал все это и синхронизировал его с DevOps.
Изменения в Azure DevOps
В DevOps я клонировал свой существующий этап сборки Visual Studio (называемый "Построить решение Winforms") и переименовал клон в Построить базы данных:
Я добавил две новые переменные сборки на вкладке Переменные с именами ClickOnceBuildStageConfiguration и DatabasesBuildStageConfiguration, значения которых равны именам новых конфигураций, которые мы только что создали в VS:
А затем я изменил этап сборки WinForms, чтобы использовать новую переменную ClickOnceBuildStageConfiguration - обратите внимание, что у нас все еще есть /T:"VisionShellWin" /target:Publish
Аргументы MSBuild, необходимые для установки ClickOnce:
И новый этап сборки баз данных для использования переменной баз данных - обратите внимание, что у нас нет никаких аргументов MSBuild:
Наконец, в дополнение к этапу копирования, который у меня уже был для копирования файлов приложения ClickOnce в drop
артефакт:
Я также добавил этап "Копирование файлов" (называемый "Копировать Dacpacs"), чтобы скопировать DacPac также в раскрывающемся списке:
После того, как вы сделали все это, вы должны получить работающую сборку и артефакт, содержащий файлы ClickOnce и DacPacs.