Не включать определенные папки в непрерывное развертывание с помощью TFS (команда Skip?)

Можно ли при непрерывном развертывании Team Foundation Server с Web Depoly остановить развертывание определенных папок? И если есть, то как?

ОБНОВЛЕНИЕ Вы не можете указать правило пропуска через командную строку (например, аргумент MSBuild) потому что они объявлены как элементы, а не как свойства.

команда пропуска может быть указана в опубликовать профиль. Однако кажется, что профили публикации предназначены только для встроенная публикация в Visual Studio, а не в Web Deploy 3.

Есть ли способ для веб-развертывания принять профиль публикации, и если есть, следует ли это проверить в TFS?


person marvc1    schedule 30.12.2012    source источник
comment
Смотрите мой комментарий в ответе Ричардса   -  person Sayed Ibrahim Hashimi    schedule 04.01.2013


Ответы (2)


Похоже, вы путаете командную строку MSDeploy с выполнением MSBuild через командную строку.

Если вы запускаете msdeploy.exe или сгенерированный файл deploy.cmd, MSBuild даже не заходит в него, и вы можете использовать файл Команда MSDeploy Skip (вы можете добавить дополнительные аргументы командной строки в cmd вызов, и они будут переданы в msdeploy.exe).

Если вы используете профили MSBuild + «DeployOnBuild» или MSBuild + публикации, вам нужно будет объявить требования к пропускам как MsDeploySkipRules элементов. Если вы собираете свой пакет отдельно до этого момента и хотите его развернуть, вы столкнетесь с препятствиями.

person Richard Szalay    schedule 03.01.2013
comment
Спасибо за ваш ответ. Я использую второй вариант: определения сборки TFS (MSBuild.exe на сервере агента TFS) с DeployOnBuild, указывающим на службу веб-развертывания на хост-сервере. Я подробно рассмотрю ваш ответ в другом вопросе. - person marvc1; 04.01.2013
comment
Да, это правильно. Для TFS выполните следующие действия: 1. Создайте профиль публикации в VS. 2. Отредактируйте файл .pubxml, чтобы добавить директивы пропуска. 3. Зарегистрируйте файлы. 4. Создайте новое определение сборки и передайте следующие аргументы MSBuild /p: DeployOnBuild=true /p:PublishProfile=‹имя профиля› /p:‹пароль› и любые другие необходимые вам свойства. - person Sayed Ibrahim Hashimi; 04.01.2013
comment
@ marvc1 — если вы используете MSBuild, вы можете использовать профили публикации (при условии, что вы используете VS2012 или VS2010 + Azure SDK), поэтому объявление элемента не будет проблемой. - person Richard Szalay; 05.01.2013
comment
@SayedIbrahimHashimi спасибо, это было то решение, которое мне было нужно. - person marvc1; 07.01.2013

У меня также была такая же проблема, однако я обнаружил, что есть переключатель, который вы можете использовать, для которого не требуется профиль. Сказав это, у профиля есть и другие преимущества. Вот аргумент, который я использовал, который работает

/p:SkipExtraFilesOnServer=true

person Jason A    schedule 19.06.2013