Как передать параметры в стиле MSDeploy в MSBuild через командную строку?

Я настраиваю TeamCity для развертывания приложения Веб-сайт проекта (используя * .wdproj) и приложения Web Deploy в IIS.

У меня есть конфигурация сборки, которая использует MSBuild.exe с MSDeployPublish для сборки и развертывания приложения.

Теперь мы хотим, чтобы приложение развертывалось в нескольких целевых средах, поэтому нам нужен способ предоставления различных настроек в зависимости от целевой среды.

Я добавил файл parameters.xml в проект веб-развертывания и убедился, что параметры, заданные здесь, проходят через целевой IIS-сервер и применяются правильно - отлично!

Теперь я хочу иметь разные настройки параметров для каждой среды. Я надеялся, что смогу использовать что-то вроде аргумента MSDeploy.exe -setParam, чтобы указать разные значения для каждой среды, однако я не могу найти способ получить значения моего параметра в MSBuild через командную строку.

Я подозреваю, что мне может потребоваться выполнить одно из следующих действий:

Разделите MSBuild и MSDeploy на отдельные этапы сборки.

Сконфигурируйте задачу где-нибудь в конвейере так, чтобы она взяла 1 из n версий parameters.something.xml и переместила ее в parameters.xml, чтобы она была передана остальной части конвейера.

Я ищу самый простой способ двигаться вперед в этом пункте, любые предложения приветствуются.

Для справки, вот команда, с которой я сейчас экспериментирую:

msbuild /target:MSDeployPublish MySite_deploy.wdproj /P:Configuration=Debug
/P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=www.myserver.com:8172/MsDeploy.axd
/P:AllowUntrustedCertificate=True /P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True /P:UserName=MyUser /p:Password=MyPassword
/P:DeployIisAppPath=www.myserver.com/MySite
/P:ServerURL=http://www.tryingtoforcethis.com

Он прекрасно работает, за исключением того, что значение ServerURL, которое я определил в своем файле parameters.xml, не попадает на целевой сайт. Однако по умолчанию, который я указал в файле parameters.xml, это. Так что я знаю, что параметры работают, я просто не могу понять, как добавить их в командную строку msbuild.

Ответы на вопрос(3)

Ваш ответ на вопрос