我正在设置 TeamCity 以将我们的网站项目应用程序(使用 *.wdproj)和 Web 部署应用程序部署到 IIS。
我有一个构建配置,它使用 MSBuild.exe 和 MSDeployPublish 来构建然后部署应用程序。
我们现在想让应用程序部署到多个目标环境,因此需要一种方法来根据目标环境提供不同的设置。
我已向 Web 部署项目添加了一个 parameters.xml 文件,并验证了此处设置的参数一直通过目标 IIS 服务器并被正确应用 - 太棒了!
现在我想做的是每个环境有不同的参数设置。我希望我可以使用类似 MSDeploy.exe -setParam 参数来为每个环境指定不同的值,但是我找不到通过命令行将参数值导入 MSBuild 的方法。
我怀疑我可能需要执行以下操作之一:
将 MSBuild 和 MSDeploy 拆分为单独的构建步骤。
在管道中的某处配置一个任务,以获取 parameters.something.xml 的 n 个版本中的 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 的值(我在 parameters.xml 中定义的一个参数)没有进入目标站点之外,它运行良好。然而,我在 parameters.xml 中指定的默认值是。所以我知道参数正在工作,我只是不知道如何将它们添加到 msbuild 命令行。