我最近使用TFS Build 2012设置了自动构建。我有不同的Web服务器,我想发布我的应用程序。我有:
1)构建服务器
2)DB服务器
3)WebServer1(已安装Web部署代理)
4)WebServer2(已安装Web部署代理)
5)WebServer3(与我设置的TFSBuild相同,即构建控制器和代理)
现在,当我从VisualStudio手动使用RightClick-> Publish(Publish Method = Web Deploy)手动发布我的应用程序时,它已成功部署到所有网络服务器。
类似地,当我使用TFS Build for WebServer3(其上有BuildController和代理)进行构建时,它可以正常工作。
但是当我尝试为WebServer1或WebServer2做同样的事情时,它只是编译代码并且DONT在服务器上发布任何内容。最糟糕的是它不会给我任何错误。它说Build已成功部署。
我已经尝试过发布here的解决方案,但它无效:(
任何帮助都将受到高度赞赏。在此先感谢。
编辑:
我的MSBuild参数如下:
/p:VisualStudioVersion=11.0
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MSDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True
/p:PublishProfile=Application
/p:MsDeployServiceUrl="https://WebServer3"
/t:Build;Publish
/p:SqlPublishProfilePath=DB.publish.xml
我明确要求设置 / p:DeployOnBuild = True ,但即使这样也不会发布。
但是,正如我之前解释的那样,它成功部署了我已经安装了构建控制器和代理的服务器。
是否要求每个Web服务器都必须安装构建控制器和代理。我认为这不是一个好主意。
答案 0 :(得分:0)
最终我弄清楚出了什么问题。
问题是 WebServer1 和 WebServer2 上没有安装 Build Controller Agent ,因此TFS构建无法将我的构建转移到该服务器。但是 必须 是一个错误。
我在webserver1和webserver2上安装构建控制器代理后尝试了它,它运行了!
答案 1 :(得分:-1)
我们在Build Customization Guidance:“应用程序和数据存储的部署”中完成了整整一章。
为每个Web服务器创建构建定义,并为
设置正确的值MSDeployServiceUrl
这是Web Deploy中安装的远程代理服务的地址。使用此URL将联系Web Deploy以发布应用程序。