2012-06-06 9 views
3

У меня есть сайт с большим количеством файлов, использующий сборку и развертывание, хотя пакеты веб-развертывания. Проблема, с которой я сталкиваюсь, заключается в том, что пакеты создаются с одного из компьютеров фермы, и метка времени не всегда совпадает. По умолчанию при развертывании в Интернете это означает, что полный ролл сайта и так много файлов и синхронизация по кластеру это не оптимально.любой способ передать -Usechecksum to msdeploy с помощью msbuild

С развертыванием линии cmd я могу передать -UseCheckSum, и это разрешено для ручного развертывания. Теперь я пытаюсь использовать CI-сборку с автоматическим развертыванием и передачей аргументов MSbuild, хотя моя настройка сборки. Есть ли способ заставить это развертывать таким же образом?

ответ

0

Если «MSBuild» означает Web Publishing Pipeline, тогда ответ будет отрицательным. Задача msbuild MSDeploy поддерживает свойство UseChecksum, но цели WPP не обеспечивают механизм, посредством которого вы можете установить его. Это относится и к ряду других функций (например, хранимых учетных данных).

3

Вы не можете сделать это в своем MSBuild, но вы можете редактировать файл Microsoft.Web.Publishing.targets на сервере сборки для применения -UseChecksum.

Смотрите мой ответ здесь: https://stackoverflow.com/a/13863041/8037

UPDATE: MS добавила возможность передавать флаг UseChecksum в VS 2013. Чтобы сделать это, добавьте следующее свойство в файле .pubxml:

<MSDeployUseChecksum>true</MSDeployUseChecksum> 

Дополнительную информацию можно найти здесь: http://blogs.msdn.com/b/webdev/archive/2013/10/30/web-publishing-updates-for-app-offline-and-usechecksum.aspx

+0

ПРИМЕЧАНИЕ ДЛЯ МОДОВ: Почему вы удалили мой предыдущий ответ? Он конкретно ответил на вопрос. Цвет меня смутил. –