Сборка Team Foundation Server трансформирует web.config ДВАЖДЫ, а второй раз не так - PullRequest
1 голос
/ 15 марта 2012

У меня есть определение сборки TFS со следующей информацией в разделе Process -> Advanced -> MSBuild Arguments: (в этом посте значения [] в скобках для безопасности опущены)

/p:DeployOnBuild=True 
/p:MSDeployPublishMethod=RemoteAgent 
/p:MSDeployServiceUrl=[URL] 
/p:DeployIisAppPath=[IISPATH] 
/p:UserName=[USERNAME] 
/p:Password=[PASSWORD]
/p:CreatePackageOnPublish=True 
/p:DeployTarget=MSDeployPublish 
/p:Configuration=Development

Вот проблема, которая у меня есть.В моем веб-проекте настроено много конфигураций, и одна из них - это конфигурация разработки.Если я оставлю «/ p: Configuration = Development» и соберу проект, который затем автоматически развертывается в нашей среде разработки, преобразование web.config будет неправильным.Он заменяет мою строку данных соединения информацией из другой конфигурации.

Если я верну "/ p: Configuration = Development" обратно в список аргументов MSBuild и открою файл web.config в VS2010 во время процесса сборкиПри первом изменении файла web.config вне моей IDE я вижу, что соответствующее преобразование web.config было выполнено в соответствии с конфигурацией разработки, но затем файл web.config изменился ВНОВЬ, и он вернулся кнеправильная конфигурация.

Моя мысль здесь заключается в том, что, оставляя «/ p: Configuration = Development» включенным, MSBuild делает все правильно, но любой процесс, который вызывается из MSBuild (я предполагаю, MSDeploy) на самом делеРазвертывание сайта на сервере приводит к ошибкам.

О, и я использую сервер IIS6, а не IIS7, поэтому любые функции, специфичные для IIS7, действительно не помогут.

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 23 марта 2012

РЕДАКТИРОВАТЬ - Fix Итак, некоторые коллеги и я потратили некоторое время на это и в конечном итоге перестроили нашу среду по несвязанной причине. После восстановления мы начали видеть то же самое. Мы посмотрели на папку «Временные сжатые файлы IIS» (C: \ inetpub \ temp \ IIS Temporary Compressed Files) и заметили, что хранится много старой информации. Мы удалили все из этой папки и запустили iisreset, и сборка работала как положено.

- Оригинальный пост У меня точно такая же проблема. Я посмотрел на каждый выходной файл, который могу придумать на сервере сборки, и все они верны. Однако, когда вызывается msdeploy, преобразование, кажется, происходит (на основе даты изменения), но выполняется неправильно. Я также попытался перехватить файл deploy.zip и импортировать приложение на веб-сервере, которое правильно разворачивается. Кто-нибудь знает, как перехватить вызов msdeploy с сервера сборки, чтобы увидеть, что именно содержит команда. Я пробовал procmon, но мне не повезло.

...