我正在设置TeamCity将我们的网站项目应用程序(使用* .wdproj)和Web部署应用程序部署到IIS。如何通过命令行将MSDeploy样式参数传递给MSBuild?
我有一个构建配置,使用MSBuild.exe和MSDeployPublish构建并部署应用程序。
我们现在想让应用程序部署到多个目标环境,因此需要一种方法来提供基于目标环境的不同设置。
我已经将一个parameters.xml文件添加到Web部署项目中,并且验证了这里设置的参数正在通过目标IIS服务器并正确应用 - 非常棒!
现在我想要做的是每个环境有不同的参数设置。我希望我可以使用像MSDeploy.exe -setParam参数为每个环境指定不同的值,但是我无法通过命令行找到我的参数值到MSBuild中。
我怀疑我可能需要执行下列操作之一:
拆分的MSBuild和MSDeploy成单独的构建步骤。
在管道的某个位置配置一个任务,以取得n个版本的参数1中的1个,并将其移入参数文件中,以便由其余管道获取。
我正在寻找最简单的方法在这一点上前进,欢迎任何建议。
供参考,在这里是我与现在尝试命令:
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命令行。
前段时间我做了类似的事情。我使用了msbuild命令,并且配置转换并为每个配置设置了发布设置。但我仍然需要做一些调整,因为我们有8个qa站点,而且我不想要8个qa config转换,所以我在msbuild任务之后复制了相应的params.xml文件(我为每个qa站点配置了一个teamcity构建配置),然后做了msdeploy,这是你可以添加你的skip,etc命令的地方。这听起来像是你现在走了好,还是还有障碍? – 2013-03-27 01:42:04
我很好走!它可能不是最优雅的,但它现在工作。唷。我正在关闭这个项目的这个部分。 :-) – Michael12345 2013-03-27 03:55:27