Публикация сервера TFS 2010 Build в той же папке и перезапись - PullRequest
4 голосов
/ 25 октября 2011

Я искал целую вечность, и я так раздражен, потому что то, что я хочу сделать, теоретически так просто!

У меня есть веб-проект, и когда я говорю своей TFS поставить в очередь новую сборку, яхочу, чтобы мои опубликованные файлы (или неопубликованные файлы - мне все равно) оказались в статической папке, такой как "C: \ inetpub \ myproj \ webfiles".

Я проверил этот пост TFS 2010 Build Публикация через файловую систему , которая привела меня к этому посту Team Build: Публикация локально с использованием MSDeploy , но я просто неЯ не получил его, и он, кажется, не работает.

У меня полностью установлено определение сборки, и оно успешно собирается и даже будет встроено в папку, которую я укажу, но как только она будет собрана, она заканчивается впотеря подпапок, одна из которых имеет добавленный номер версии, что означает, что IIS не получит мою последнюю версию автоматически без некоторой перенастройки.(Я удалил привязки версий, но тогда последняя сборка не будет перезаписана последней сборкой)

В настоящее время я работаю с этими аргументами MSBuild, чтобы попытаться заставить его работать:

/p:DeployOnBuild=true;
DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;
_PackageTempDir="\\HomeServer\inetpub\SiteTest";
AutoParameterizationWebConfigConnectionStrings=false

Но есть пара моментов:

  • Папка 'SiteTest' никогда не создается и
  • Доступ к ней осуществляется через общий ресурс, когда она предназначена для локального сервера HomeServer.файловая система, которую я тоже хочу опубликовать.

Мне просто нужно автоматически получить свои веб-файлы внутри папки, которую я могу предопределить для IIS, помогите!

1 Ответ

1 голос
/ 17 ноября 2013

Я добился этого, настроив наш шаблон процесса сборки.Сделайте копию вашего DefaultTemplate.xaml (например, DefaultTemplateV2.xaml) и откройте его.

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

После открытия нажмите корневую последовательность и нажмите Аргументы.Добавьте три аргумента:

  1. DeployBuild (Boolean) по умолчанию имеет значение False
  2. FromPath (String)
  3. InstallPath (String)

Тогда, в вашем рабочем процессе откройте следующие разделы:

  • Запустите на агенте
  • Попробуйте скомпилировать, проверить и ...
  • В разделе Попробуйте открыть последовательность

В нижней части последовательности после получения проверенных результатов ... откройте панель инструментов и перетащите элемент рабочего процесса «Если».Установите условие для DeployBuild.

В разделе «То» элемента «Перетащите» в элемент рабочего процесса CopyDirectory.Установите для параметра Destination значение InstallPath, а для Source -

String.Format("{0}\{1}", BinariesDirectory, FromPath).

Сохраните его и зарегистрируйте его. Вам потребуется открыть предыдущую сборку и отметить подпапку сборки, которую вы хотите развернуть.Это будет что-то вроде _PublishedWebsites \ mywebsite \

Отредактируйте определение вашей сборки (вам, возможно, придется сначала закрыть и снова открыть VS) и перейти на вкладку Process.Измените шаблон процесса сборки на новую версию.

Установите FromPath на путь, который вы только что отметили.Задайте для InstallPath путь UNC к папке назначения (вам нужно убедиться, что любая учетная запись службы, под которой запускаются ваши сборки, имеет доступ к этому пути) и установите для DeployBuild значение True.

Сохранить, поставить в очередь сборкуи протестируйте ваше развертывание.

В рабочем потоке XAML вы также можете перейти к Аргументам и отредактировать аргумент метаданных с каждым из ваших новых аргументов.Вы можете установить, где они могут быть просмотрены.Таким образом, вы можете, например, установить FromPath и InstallPath так, чтобы они просматривались только при редактировании определения, а DeployBuild - в очереди на сборку.Таким образом, вы можете включить или выключить его в очереди.

Удачи.

...