В рамках нашего процесса сборки мы развертываем наши веб-приложения с использованием MSDeploy.Это прекрасно работало до нескольких недель назад (я думаю, когда мы обновили наш сервер сборки / TFS до SP1 TFS 2010).
В нашем определении сборки есть шаг для вызова процесса.Этот процесс вызовет сгенерированный файл deploy.cmd и передаст пару дополнительных параметров.Долгое время это работало нормально, но теперь мы получаем следующее:
Ошибка: нераспознанный аргумент '"-skip: objectName = filePath, absolutePath =. * Cmsservices.config"'.Все аргументы должны начинаться с "-".
Как описано в справке, мы передаем дополнительные аргументы в кавычках:
WebApplication.deploy.cmd / Y / M: sv-ad-iis02-allowUntrusted "-skip: objectName = filePath, absolutePath =. * cmsservices.config" "-skip: objectName = filePath, absolutePath =. * servicemodel.client.config" "-skip: objectName = dirPath, absolutePath = app_data"
Однако этот трюк больше не работает.Удаление кавычек также удалит любые символы, такие как = и, которые будут заменены пробелами.
Я проследил его (сравнивая старый deploy.cmd с новой версией) до этой строки:
Строка 76:
@rem Any addition flags, pass through to the msdeploy
set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags% %_ArgCurrentOriginal%
В предыдущей версии этобыло:
@rem Any addition flags, pass through to the msdeploy
set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags% %_ArgCurrent%
_ArgCurrentOriginal использует % 1 вместо % ~ 1 , и если я изменю этот код, все будет работать снова.Однако файл deploy.cmd генерируется автоматически каждый раз (по крайней мере, выглядит так)
Любая подсказка, почему это было изменено и как с этим бороться?
Update;Я обошел эту проблему, используя переменную окружения для передачи этих значений.Это по-прежнему не решает проблему, заключающуюся в том, что новые файлы deploy.cmd экранируют кавычки другим способом.
Решение, которое я сейчас поместил в свой рабочий процесс развертывания:
<mtbwa:InvokeProcess Arguments="[String.Format("/Y /M:{0} -allowUntrusted", DeploymentServerName)]" DisplayName="Deploy selected Web Application using MSDeploy" EnvironmentVariables="[New Dictionary(Of String, String) From {{"_MsDeployAdditionalFlags", DeploymentParameters}}]" FileName="[String.Format("{0}\Packages\{1}\{2} {3}\{4}.deploy.cmd", BuildDetail.DropLocation, platform.Configuration, ApplicationName, VersionString, DeploymentPackageName)]" sap:VirtualizedContainerService.HintSize="464,420" Result="[ExitCode]">