我正在设置 TeamCity 以将我们的网站项目应用程序(使用 *.wdproj)和 Web 部署应用程序部署到 IIS。
我有一个生成配置,它使用 MSBuild.exe 和 MSDeployPublish 来生成然后部署应用程序。
我们现在希望将应用程序部署到多个目标环境,因此需要一种方法来根据目标环境提供不同的设置。
我已将parameters.xml 文件添加到Web 部署项目,并验证了此处设置的参数是否一直通过目标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 命令行中。
好吧,我认为简短的答案是,使用 MSBuild 4.0 和 VS2010,您不能仅通过调用 MSBuild 将任意参数传递到 MSDeployPublish 中。
我发现这些帖子很有帮助:
http://forums.iis.net/t/1167657.aspx/1 http://forums.iis.net/t/1167657.aspx/1——陈明的评论
http://www.hanselman.com/blog/TinyHappyFeatures3PublishingImprovementsChainedConfigTransformsAndDeployingASPNETAppsFromTheCommandLine.aspx http://www.hanselman.com/blog/TinyHappyFeatures3PublishingImprovementsChainedConfigTransformsAndDeployingASPNETAppsFromTheCommandLine.aspx- 底部 Richard Szalay 的评论
阅读完这些内容,并在 Microsoft.Web.Publishing.targets 文件中筛选了一段时间试图找到“方法”后,我最终决定在源代码管理中的项目文件夹中保存多个Parameters.xml副本,并根据他们的环境例如:
- 参数.Test.xml
- 参数.Staging.xml
- 参数.Live.xml
然后,在打包和部署之前,我只需将这些文件之一复制到Parameters.xml 中,管道的其余部分就会拾取它 - 完成!
顺便说一句,由于似乎是某种文件访问问题,我在获取parameters.xml副本和后续清理以在单个MSBuild.exe调用中工作时遇到了临时问题,我在这里详细说明了这一点:
MSBuild.exe 复制任务无法正常工作,除非该文件的版本已出现在目标中 https://stackoverflow.com/questions/15587678/msbuild-exe-copy-task-not-working-properly-unless-a-version-of-the-file-already
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)