【问题标题】:How to automate the build process?如何自动化构建过程?
【发布时间】:2011-10-17 10:14:53
【问题描述】:

如何自动化 Web 应用程序构建过程,包括以下步骤:

  • 更改连接字符串。
  • 通过脚本重新创建数据库。
  • 通过 ftp 部署网站。
  • 除了应用程序之外,还复制一些文件到服务器。
  • 并且可能会执行一些初始化操作。

我应该编写任何脚本/程序,使用 Visual Studio 还是任何其他程序?

【问题讨论】:

  • 您查看过构建前/构建后事件吗?
  • 如果能够设置构建前和构建后事件,那就太好了。
  • 你在使用 Visual Studio IDE 吗?
  • 是的,我正在使用带有 R# 6.0 的 Visual Studio 2010

标签: asp.net deployment configuration automation


【解决方案1】:

我个人使用持续集成工具来完成此类工作。

我主要使用的是Team City by JetBrains

此类软件可以查看您的源代码控制存储库以进行新检查、执行构建、将构建发布到服务器以及运行构建前/构建后事件。

【讨论】:

  • Team City Cold 如何帮助您更改连接字符串并重新创建数据库使用脚本?无法想象在 CI 技术范围内怎么可能,我相信这不是 CI 软件的任务,我错了吗?
【解决方案2】:

你必须开始学习MSBuild。它非常简单明了,所以开始吧,你会看到的 ;)

除了内置功能之外,它还具有Community Pack 以及许多美味的东西,因此您将能够:

  • 使用正则表达式替换配置文件中的连接字符串或将整个配置替换为预定义的连接字符串(FileUpdate 或复制任务)
  • 执行数据库脚本 (MSBuild.Community.Tasks.SqlServer.ExecuteDDL)
  • 使用Copy 任务部署站点

还有很多其他...

【讨论】:

    【解决方案3】:

    您可以在 Visual Studio 中运行前置和后置事件。为此,只需右键单击项目并在项目属性中导航到“构建事件”选项。您可以在此处指定构建前和构建后事件(您还可以指定事件何时运行 - 在成功构建时或其他情况下)。

    成功构建项目后,可以设置构建后事件以执行指定的任务。您可以在单独的文件中或在 Visual Studio 项目的构建事件本身中详细说明这些步骤。

    更多信息

    【讨论】:

      【解决方案4】:

      在 Jamie 提到的持续集成概念中,我们在内部使用 BuildMaster 来开发我们的所有应用程序 :)

      现在我们有一个免费提供的版本,我将就您的每个要点分享一些想法:

      更改连接字符串

      这是由该工具唯一处理的事情。每个环境都会获得自己的配置文件“实例”,在部署计划中,您可以使用“部署配置文件”操作将它们放置在任何环境中。这意味着无需担心转换,因为配置文件存储在工具中并进行了版本控制。

      通过脚本重新创建数据库

      这是我们的另一个主要功能。目标代码(存储过程、视图等)每次都可以使用 DROP/CREATE 组合运行,但添加索引、删除列只能执行一次(如果不恢复,就无法恢复列的数据!)

      BuildMaster 以不同的方式处理这些类型的更改脚本 - 它们最多只能针对环境的数据库实例运行一次。这使得更新任何新的或现有的已初始化数据库架构变得非常容易。

      通过 FTP 部署网站

      只需在您的部署计划中添加一个操作,然后单击“创建构建”或“提升构建”,它就会执行此操作。

      复制一些文件到服务器除了应用程序

      如果该过程是可重复的,您可以轻松地执行此操作,如果需要,可以使用会提醒您执行此操作的手动操作。

      并且可能会执行一些初始化操作

      对我来说,这听起来像是一种“变更控制”,即在您发布时的一次性变更。我们也支持这些,但很遗憾,免费版本不支持。

      【讨论】:

        猜你喜欢
        • 2017-02-04
        • 2016-12-17
        • 2010-09-06
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        • 1970-01-01
        • 2013-11-22
        • 1970-01-01
        相关资源
        最近更新 更多