В рамках нашего процесса сборки мы развертываем наши веб-приложения, используя MSDeploy. Это улучшилось до нескольких недель назад (я думаю, когда мы обновили наш сервер сборки /TFS до SP1 TFS 2010).
В нашем определении сборки есть шаг для вызова процесса. Этот процесс вызовет сгенерированный файл deploy.cmd и передает несколько дополнительных параметров. Это работало отлично в течение длительного времени, но теперь мы получаем следующее:
Ошибка: нераспознанный аргумент ' "-skip: objectName = filePath, absolutePath =. * cmsservices.config". Все аргументы должны начинаться с "-".
Как описано в справке, мы передаем дополнительные аргументы in с кавычками:
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 автоматически генерируется каждый раз (по крайней мере, похоже)
Какая-нибудь подсказка, почему это было изменено и как с этим справиться?
Обновление; Я работал над этой проблемой, используя переменную окружения для передачи этих значений. Он по-прежнему не решает проблему, что новые файлы 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]">