使用TeamCity中的MSBuild部署到远程服务器

5

好的,我已经搜索了几天,但仍然没有找到我认为是一个优雅的解决方案来解决这个问题。

这是我想要发生的事情。

  • 我希望TeamCity能够构建我的代码
  • 然后测试它
  • 然后将其部署到远程服务器。

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

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

请告诉我有人有解决这个问题的方法!我很高兴今天快过去了,因为我快哭了,需要酒来帮助我。

提前感谢。

2个回答

2
我们做的事情非常相似,但是将最后一个任务分离出来,形成自己的构建,计划每晚部署最近成功的构建,以防止开发人员提交时网站上下起伏。我们没有使用msdeploy,但您可能会发现以下链接有用:
自动化部署与TeamCity、部署项目和SVN
Web部署变得更加出色:如果您使用XCopy,那么您正在做错
Web包装:使用MSBuild创建Web包

1

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

1)使用一个固定的工作目录文件夹,这样代码总是编译到同一个地方。然后从bin\RELEASE文件夹复制或FTP到目标服务器或文件夹。

2)编写一个脚本,在构件文件夹中使用一些大版本号(999),然后检查每个较小的版本号,直到找到具有该版本号的文件夹。如果您通过curl和构件网页获取构件,则也可以执行此操作。

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


1
我使用#1,一个固定的工作目录文件夹。如果我创建一个分支,我会创建一个新的固定工作目录文件夹,然后使用发布后构建脚本更新分支位置。#3可能是最优雅的选择,但是从msbuild到批处理再到powershell时发现正确引用msbuild、teamcity和操作系统环境变量的方法还不是我的长项。 - MatthewMartin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接