【问题标题】:ASP.NET Application - Extract, Test, Compile, and DeployASP.NET 应用程序 - 提取、测试、编译和部署
【发布时间】:2009-03-13 18:34:26
【问题描述】:

假设:我对持续集成领域很陌生。

我应该使用什么方法来提取、测试、编译、部署 ASP.NET (.NET 3.5) 应用程序。

步骤 1) 有时我想从 TFS 中提取最新的源代码,有时也想从 Subversion 中提取。

步骤 2) 运行所有测试。 (我目前正在使用 MbUnit)

步骤 3) 如果所有测试都通过,则构建发布版本。

步骤 4) 通过 FTP 部署代码 - 在特定 URL 处替换当前应用程序

我正在寻找易于学习和设置、低成本或免费/开源的解决方案。

MSBuild 是第 3 步中最容易做的事情吗?因为我真的不想做任何特别的事情......只需提供一个解决方案名称并编译它。我主要关心的是找到一些东西来抽象出由需求/步骤#1引起的任何主要问题。

【问题讨论】:

标签: .net svn deployment tfs continuous-integration


【解决方案1】:

我们使用 CruiseControl.net,但您的第一个要求可能有点问题。您能否解释一下您如何选择从哪个存储库中提取源代码。 CC.NET 可以与其中任何一个一起使用,或者如果您对 ccnet.config 设置有点聪明,也可以同时与这两个一起使用,但这更多取决于您如何知道从哪个中提取。

剩下的很简单,我用 NAnt 来做真正的工作,而且很容易做到。

编辑:

NAnt 已经有一段时间没有更新了,MSBuild 发布时开发停止了。如果您在 stackoverflow 上进行搜索,您会发现很多“我应该切换到 MSBuild”类型的问题,就个人而言,我们对 NAnt 有相当多的了解,它可以满足我们的需求,并且我们会做一些事情在 MSBuild 中非常难,所以我们会再坚持一段时间。

CruiseControl.NET 有可以直接调用 MSBuild 的任务,我们仍然直接调用 DevEnv,因为我们构建了很多部署项目,这是 MSBuild 难以做到的。

我们的 NAnt 脚本将带我们一路从 ClearCase 中提取正确的源代码,一直到打包产品准备发货。

但是,NAnt 只是一种选择,如果您对另一种脚本语言(例如 PowerShell)感到满意,那么没有理由不使用它。 CruiseControl.NET 可以使用标签将任何可执行文件作为任务调用,并通过使用环境变量传递大量信息。此页面:http://confluence.public.thoughtworks.org/display/CCNET/Executable+Task 详细介绍了传递的内容。

就使用相同的步骤而言,两种设置之间的唯一区别是 ccnet.config 文件中的源代码控制块,当我们更改正在使用的视图时,我们的 NAnt 脚本根本不会改变,因为一切都是相对的并且我们碰巧有一个标准的视图布局,这意味着我们始终知道所有内容的位置。

希望对您有所帮助。

艾伦。

【讨论】:

  • TFS 将用于工作。颠覆将是我的副业。我想在剩下的过程中使用相同的步骤。 NAnt 是否仍然有效.. 该网站看起来像是在 2007 年 12 月 8 日进行的最后一次更新。MSBuild 是否已成为新的“它”事物?
  • 用 NAnt 编译解决方案有多容易?你能在 XML 的一行/模式中做到这一点吗?如果我需要将一些步骤粘合在一起,我会更好地使用 PowerShell。
  • 我已经编辑了帖子以添加对这些事情的想法。艾伦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多