Развертывание базы данных и веб-проектов в процессе сборки TFS - PullRequest
3 голосов
/ 02 апреля 2012

У меня смешанное решение с парой веб-приложений и проектов баз данных SQL.

У меня также есть удаленный тестовый сервер с MS SQL 2012 и IIS 7. Сервер сборки TFS находится на другом компьютере. Все серверы настроены на один домен.

Я хотел бы развернуть базы данных и веб-приложения в процессе сборки.

Теперь я настроил генерацию пакета сборки в файле процесса TFS XAML, используя следующие флаги:

/p:DeployOnBuild=True

и я также установил другие флаги для веб-публикации:

/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MsDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True

но я немного запутался, какой метод мне следует использовать: WMSVC или удаленный агент или что-то еще. Какой самый простой способ настроить веб-развертывание с сервера сборки TFS на сервер IIS 7 и избежать проблем с учетными записями пользователей (чтобы избежать настройки / p: UserName = YOURUSERNAME / p: Пароль = ВАШ ПАРОЛЬ в XAML или определение сборки)?

Другая проблема касается проектов баз данных. В процессе сборки были сгенерированы некоторые файлы .dacpac. Каков наилучший способ их развертывания из процесса сборки TFS XAML?

Поскольку в моем решении смешанные типы проектов, я не уверен, как настроить процесс сборки, чтобы он правильно определял, какие проекты требуют развертывания базы данных, а какие - развертывания через Интернет.

Надеюсь, MSBuild / MSDeploy достаточно умен, чтобы просто игнорировать эти / p: flags, если текущий проект не является веб-приложением или, возможно, он вызовет сбой для всего процесса сборки?

1 Ответ

3 голосов
/ 04 апреля 2012

Эти два сайта:

Вы неправильно его развернули

Безголовая поддержка msbuild для проектов ssdt sqlproj

мне очень помогло все правильно настроить.

И теперь я знаю, что WMSVC является предпочтительным (по сравнению с RemoteAgent) методом для удаленной публикации на IIS7, но мне нужно установить WebDeploy на целевом сервере. На локальном хосте InProc работает просто отлично.

Одной из основных проблем было то, что я старался публиковать веб-приложения после создания всех решений, но MSBuild просто продолжал говорить «Пропуск неопубликованных приложений».

И проблема была

Targets="Publish"

в моем скрипте MSBuild. Когда я изменил его на

Targets="Build"

и укажите свойства для моего проекта:

  Configuration=Release;
  SkipInvalidConfigurations=true;
  DeployOnBuild=true;
  CreatePackageOnPublish=true;
  AllowUntrustedCertificate=true;
  DeployTarget=MsDeployPublish;
  MSDeployPublishMethod=InProc;
  MsDeployServiceUrl=localhost;
  DeployIISAppPath=Default Web Site\MyWebApp

наконец-то началась публикация в IIS7 на моем локальном хосте.

Э-э, почему цель публикации не публикуется, а только цель сборки? Это для меня загадка. Тем более, что я использую цель публикации для своих проектов sqlproj, и они действительно хорошо публикуются на сервере SQL.

...