所以这里是交易。在 Web 应用程序项目设置中,我配置了一个部署包,其中包括所有内容文件以及站点和应用程序池的 IIS 设置。现在,当我转到 Team Build 构建配置时,我使用以下参数来部署站点。
/p:UseWPP_CopyWebApplication=True
/p:PipelineDependsOnBuild=False
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl=https://<servername>:8172/MsDeploy.axd
/p:AllowUntrustedCertificate=True
/p:DeployIisAppPath="mysite.com"
/p:UserName=<domain>\<user>
/p:Password=<password>
虽然这确实有效,但如果目标服务器上不存在“mysite.com”站点或应用程序池设置不正确(即 ASP.NET 版本不匹配),则部署将失败。所以我发现自己在从 Team Build 部署任何东西之前手动创建了这些东西。有没有办法自动化这个?我错过了某种参数开关吗?我想用另一种方式来表达这个问题,就是为什么当包包含所有 IIS 设置并且应该只部署时我必须设置所有这些。
感谢您的任何帮助/解释。
编辑:
我不完全确定这是否属实,但我相信我将无法创建站点/应用程序池。根据我对事物的理解,Team Build 使用 msbuild 与 msdeploy 对话,并且该链接的功能非常有限。所以,我可能正在考虑更改构建工作流模板以执行命令行来部署包(?)。