【发布时间】:2012-09-10 19:40:18
【问题描述】:
我已经为 WCF 项目设置了持续集成,并希望使用 MSBuild 参数将应用程序自动部署到远程服务器,但它没有部署。
当运行一个新的构建时,所有的测试都通过并且所有的项目都构建了,但是网站没有被部署。此外,我没有从构建中收到任何错误,表明出现任何问题。
我已经在远程服务器上打开了 8172 端口以确保可以连接到 IIS,甚至还禁用了防火墙。
在构建配置中,我指定了以下参数;
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:DeployIisAppPath="Default Web Site/MYSite" /p:MsDeployServiceUrl=http://mysite.com /p:username=MySite\Administrator /p:password=thePassword
我根据以下示例编译了此配置:
http://vishaljoshi.blogspot.co.uk/2010/11/team-build-web-deployment-web-deploy-vs.html
http://www.chrissurfleet.co.uk/post/2011/07/21/Setting-Up-Continuous-Deployment-In-TFS.aspx
我已将服务器的 IIS 配置为启用远程连接,并且我可以从构建服务器远程管理 IIS。此外,我还使用 Visual Studio 2012 发布选项成功部署了应用程序。
谁能看到我的 MS Build Arguments 有问题?我错过了什么吗?
任何帮助将不胜感激
更新:
我已经检查了构建服务器以检查是否安装了 MS deploy 并安装了 Web Deploy 3.0 以确保这是可行的,但没有解决我的问题。
我检查了 IIS 连接日志以查看是否正在建立与 IIS 的远程连接,并且没有从我的构建服务器建立到应用服务器的连接。
我尝试在构建服务器上手动为解决方案和项目运行 MSBuild.exe:
MSBuild.exe "项目位置" /p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:MSDeployPublishMethod=WMSVC /p:DeployIisAppPath="Default Web Site/app" /p:MsDeployServiceUrl=http://appserver:8172/MSDeploy.axd /p :AllowUntrustedCertificate=True /p:CreatePackageOnPublish=False /p:Username=username /p:Password=password
MSBuild 正在成功构建项目,但没有尝试部署它。
有什么想法吗?
【问题讨论】:
-
我认为
/p:MsDeployServiceUrl需要是服务器名称(将构建部署 URL)或部署服务端点(而不是站点)的 URL。stackoverflow.com/questions/7676840/… 有帮助吗? -
谢谢,我试试看。我是否需要在构建参数中指定要部署的项目?当我使用持续集成时,我指定了要构建的解决方案,而不是 WCF 项目。
-
从服务器名称中删除 http:// 也有助于此工作
-
令人沮丧的答案是您无法使用开箱即用的 TFS Build 进行部署。我看过其他使用 MSBuild 参数发布的教程,但问题是即使它有效,部署也会发生在构建过程中途和测试用例执行之前!实际上,您也将部署“失败”的构建。在 Team Foundation Service 上,Microsoft 使用具有集成步骤的自定义工作流 - 您可以采用相同的路线,但需要自定义开发构建过程。也许是工作流调用的 Powershell 脚本?
标签: deployment tfs continuous-integration tfsbuild web-deployment