У меня настроена сборка TFS для сборки и развертывания веб-приложения. Я передаю параметры MSDeploy через аргументы MSBuild определения сборки TFS. Первый раз это работает нормально. Когда кто-то получает доступ к веб-приложению, один из элементов управления (элемент управления диаграммами Microsoft) создает пару файлов в пустой директории, которую я добавил в решение.
Когда я иду на перестройку (или запускается непрерывная интеграция), следующая сборка обычно завершается неудачей, потому что она не может удалить один из сгенерированных файлов. Когда я пытаюсь вручную удалить файл, он говорит мне, что рабочий процесс IIS использует его, и он не может быть удален.
Теперь, чтобы получить сборку, мне придется каждый раз вручную перезагружать IIS, что нежелательно с учетом CI. Я посмотрел через Microsoft.Web.Publishing.Tasks.dll и там нет ничего, чтобы перезапустить IIS с помощью MSDeploy.
В данный момент я думаю, что добавление заглушек временных файлов в решение может быть решением (возможно, MSDeploy сможет закрыть процесс, если файл является постоянной частью развертывания), или я мог бы сделать некоторые неприятность с Exec в файле решения для сброса IIS.
Это, вероятно, длинный выстрел, но кто-нибудь сталкивался с этим и нашел хорошее решение?