我正在配置 TeamCity 来部署我们的网站项目应用程序(使用 *.wdproj 文件)和 Web Deploy 应用程序到 IIS。
我有一个构建配置,使用 MSBuild.exe 和 MSDeployPublish 来构建并部署应用程序。
现在,我们希望将应用程序部署到多个目标环境中,因此需要一种根据目标环境提供不同设置的方法。
我已经向 Web 部署项目添加了 parameters.xml 文件,并验证了这里设置的参数已经通过目标 IIS 服务器并正确应用 - 太棒了!
现在我想要做的是针对每个环境设置不同的参数。我希望我可以使用类似 MSDeploy.exe -setParam 参数来指定每个环境的不同值,但是我找不到任何通过命令行将我的参数值传递给 MSBuild 的方法。
我怀疑我可能需要执行以下操作之一:
将 MSBuild 和 MSDeploy 拆分为单独的构建步骤。
在管道中的某个位置配置一个任务,以获取 parameters.something.xml 的 1 个版本,并将其移动到 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的值,其他的都非常完美。 ServerURL是我在parameters.xml中定义的参数,但它没有传递到目标站点中。 不过,我在parameters.xml中指定的默认值确实起作用了。 所以我知道参数生效了,只是我无法弄清楚如何将它们添加到msbuild命令行中。