2010-07-15 70 views
5

好吧,我已经搜索了几天,仍然没有找到我认为是这个问题的优雅解决方案。在teamcity中使用msbuild部署到远程服务器

这是我想要发生的事情。

  • 我想的TeamCity建立我的代码
  • 然后对其进行测试
  • 它,然后部署到远程服务器。

前两个很容易,但没有人似乎有一个很好的部署选项。我已经设置了支持Web部署的服务器(以前称为msdeploy?),并且可以从本地计算机将其发布到远程服务器。

我希望teamcity能够在成功构建和测试后允许远程发布网站。

请告诉我有人有问题的解决方案!我很高兴这几乎是星期五,因为我近在眼前,需要酒精来帮助我。

在此先感谢。

回答

1

我也在处理同样的问题。目前我有两个难看的解决方案:

1)使用固定的工作目录文件夹。然后代码总是被编译到同一个地方。将bin \ RELEASE文件夹中的XCOPY/FTP执行到目标服务器或文件夹。

2)编写一个脚本,使用一些大版本号(999)搜索工件文件夹,然后检查每个较小的版本号,直到找到具有该版本号的文件夹。如果您通过curl & artifacts网页获取您的工件,也可以通过URL完成此操作。

3)在类似的网站上发布问题,直到找到一些msbuild属性,环境变量或其他类似的设备来获取工件URL或文件系统路径(理解teamcity支持在服务器场上构建,因此文件系统路径可能需要包含一个UNC名称以确定它来自哪里)

+0

那你最终使用? – 2011-10-26 06:06:45

+1

我使用#1,一个固定的工作目录文件夹。如果我创建了一个分支,我创建一个新的固定工作目录文件夹,然后通过分支位置的后期构建部署脚本进行更新。 #3将是最优雅的,但是发现引用msbuild,teamcity和OS环境变量的正确方法,就像从msbuild到batch到powershell一样,这仍然是我不擅长的。 – MatthewMartin 2011-10-26 14:44:34

2

我们做了一些非常相似的事情,但将最后一项任务分离到它自己的构建中,该构建计划将最近发布的成功构建部署到每晚在开发人员提交时停止网站上下移动。我们没有使用msdeploy但你会发现下面的链接有用:

Automated deployments with TeamCity, Deployment projects & SVN

Web Deployment Made Awesome: If You're Using XCopy, You're Doing It Wrong

Web Packaging: Creating web packages using MSBuild

相关问题