【问题标题】:Deploying to remote server using msbuild in teamcity在 teamcity 中使用 msbuild 部署到远程服务器
【发布时间】:2010-07-15 14:20:25
【问题描述】:

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

这就是我想要发生的事情。

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

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

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

请告诉我有人可以解决这个问题!我很高兴快到星期五了,因为我快要流泪了,需要酒精来帮助我。

提前致谢。

【问题讨论】:

    标签: .net msbuild teamcity deployment publish


    【解决方案1】:

    我们做了一些非常相似的事情,但将最后一个任务分离到它自己的构建中,该构建计划每晚部署最成功的构建,以阻止每次开发人员提交时网站上下波动。我们没有使用 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

    【讨论】:

      【解决方案2】:

      我也在处理同样的问题。到目前为止,我有两个丑陋的解决方案:

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

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

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

      【讨论】:

      • 我使用#1,一个固定的工作目录文件夹。如果我创建一个分支,我会创建一个新的固定工作目录文件夹,然后通过构建后部署脚本使用分支的位置进行更新。 #3 将是最优雅的,但在从 msbuild 到批处理再到 powershell 的过程中发现引用 msbuild、teamcity 和 OS 环境变量的正确方法仍然是我不擅长的事情。
      猜你喜欢
      • 2012-11-09
      • 2013-02-22
      • 1970-01-01
      • 2011-07-21
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      相关资源
      最近更新 更多