Интеграция сборки TFS с управлением выпусками

Как создать сборку TFS, которая автоматически запускает выпуск (развертывание) из управления выпусками Microsoft для Visual Studio 2013?


person sarin    schedule 04.07.2014    source источник


Ответы (1)


Чтобы начать выпуск с вашей сборки TFS, вам нужно изменить определение сборки. К счастью, когда вы устанавливаете Release Management, он создает шаблон сборки, который вы можете использовать в качестве примера. В некоторых случаях этого будет достаточно, чтобы начать работу.

Шаблон процесса сборки управления выпуском

Шаблоны процесса сборки управления выпусками не устанавливаются в TFS по умолчанию, поэтому он не будет отображаться в качестве доступного шаблона процесса сборки, пока вы его не добавите.

Найдите шаблон на своем сервере в папке: C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReleaseManagement\bin\

TFS 2010 : ReleaseDefaultTemplate.xaml
TFS 2012 : ReleaseDefaultTemplate.11.1.xaml
TFS 2013 : ReleaseTfvcTemplate.12.xaml (or ReleaseGitTemplate.12.xaml if using GIT)

Чтобы добавить шаблон процесса сборки управления выпуском, вам нужно будет вернуть его в систему управления версиями TFS в папке BuildProcessTemplate вашего проекта. Затем добавьте файл процесса сборки при редактировании (или добавлении) определения сборки. Как только шаблон управления выпуском будет добавлен в список шаблонов сборки, вы можете начать его использовать.

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

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets (3883): Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)

Выбор пакета \ Путь к пакету.

Когда вы настраиваете свои компоненты, Release Management должен знать, где взять ваши установочные файлы, чтобы что-то с ними сделать. Когда вы создали свой шаблон выпуска, его следует подключить к конкретной сборке, выбрав определение сборки, которое будет инициировать его (также отметьте «может инициировать выпуск из сборки?»). Когда вы добавляете компоненты для установки в составе выпуска, вы указываете их источник. Следует выбрать «Сборки с приложением». Что меня поразило, так это большое пустое поле рядом с полем Build Drop, которое является обязательным полем. Моя первоначальная реакция заключалась в том, чтобы заполнить его именем файла msi, который я пытался развернуть. Это имеет смысл, верно? неправильный. Если я ставил в очередь сборку из Visual Studio, я продолжал получать следующее сообщение.

Package location '\\blah\blah\Build Name\Build Name_20140707.3\A.Product.To.Install.msi' does not exists or Deployer user does not have access.

Файл действительно существовал в том месте, и пользователь, которого использовал агент развертывания, имел доступ к каталогу перетаскивания. Я также подтвердил, что он смог получить к нему доступ с помощью ProcMon. Поспав на нем, я решил навести указатель мыши на поле ввода, и всплывает хорошая всплывающая подсказка:

Путь пакета относительно места размещения сборки требуется для компонента, связанного с шаблоном выпуска. Если пакет находится непосредственно в корневом каталоге сборки, вам необходимо ввести символ «\».

Итак, после моего момента эврики я удалил имя файла msi и заменил его на «\» и поставил в очередь следующую сборку. Это сработало. Оглядываясь назад, я думаю, что им следует удалить обязательное требование о вводе чего-либо, чтобы заменить необходимость ввода «\». Это немного скрыто и не интуитивно понятно.

Как получить пакет

Дополнительную информацию см. в статье MSDN здесь

Для измененных шаблонов процесса сборки

person sarin    schedule 04.07.2014
comment
Вы также можете включить это на случай, если кто-то увидит этот ответ, но использует измененный шаблон процесса сборки: blogs.msdn.com/b/visualstudioalm/ архив/2013/12/09/ - person Daniel Mann; 05.07.2014
comment
Шаблон с сервера у меня был идентичен шаблону клиента. - person quintessential5; 25.07.2014