Asp.net 如何使构建过程自动化?

Asp.net 如何使构建过程自动化?,asp.net,deployment,configuration,automation,Asp.net,Deployment,Configuration,Automation,如何实现web应用程序构建过程的自动化,包括以下步骤: 更改连接字符串 通过脚本重新创建数据库 通过ftp部署网站 除了应用程序之外,还将一些文件复制到服务器 可能需要执行一些初始化操作 我是否应该编写脚本/程序、使用Visual Studio或任何其他程序?您必须开始学习MSBuild。它非常简单明了,所以只要开始,您就会看到;) 除了内置功能外,它还有Community Pack和许多美味的东西,因此您可以: 使用正则表达式替换配置文件中的连接字符串,或使用预定义的连接字符串替换整个配

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

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

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

您必须开始学习
MSBuild
。它非常简单明了,所以只要开始,您就会看到;)

除了内置功能外,它还有
Community Pack
和许多美味的东西,因此您可以:

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

还有许多其他…

您必须开始学习
MSBuild
。它非常简单明了,所以只要开始,您就会看到;)

除了内置功能外,它还有
Community Pack
和许多美味的东西,因此您可以:

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

还有很多其他的…

我个人使用一个持续集成工具来完成这类工作

我主要用的是


这类软件可以查看源代码管理repo以进行新检查、执行生成、将生成发布到服务器以及运行生成前/生成后事件。

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

我主要用的是


这类软件可以查看源代码管理repo以进行新检查、执行生成、将生成发布到服务器以及运行生成前/生成后事件。

您可以在Visual Studio中运行生成前和生成后事件。为此,只需右键单击项目,然后在项目属性中导航到“生成事件”选项。在这里,您可以指定生成前和生成后事件(您还可以指定事件何时运行-成功生成或其他)

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

更多信息


您可以在Visual Studio中运行事前和事后事件。为此,只需右键单击项目,然后在项目属性中导航到“生成事件”选项。在这里,您可以指定生成前和生成后事件(您还可以指定事件何时运行-成功生成或其他)

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

更多信息


在Jamie提到的持续集成概念中,我们自开发应用程序以来,就在内部使用它:)

现在我们有了一个免费的版本,我将与大家分享关于每个要点的一些想法:

更改连接字符串

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

通过脚本重新创建数据库

这是我们的另一个主要特点。对象代码(存储的过程、视图等)可以通过拖放/创建组合每次运行,但添加索引、拖放列只能执行一次(如果不进行还原,则无法将列的数据带回来!)

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

通过FTP部署网站

只需将一个操作添加到部署计划中,然后单击“创建生成”或“升级生成”,它就会这样做

除了应用程序之外,还将一些文件复制到服务器

如果这个过程是可重复的,你可以很容易地做到这一点,如果需要的话,可以使用手动操作来提醒你去做

可能需要执行一些初始化操作


对我来说,这听起来像是一个“变更控制”,当你发布时是一次性的变更。我们也支持这些功能,但不幸的是,免费版本中不支持这些功能。

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

现在我们有了一个免费的版本,我将与大家分享关于每个要点的一些想法:

更改连接字符串

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

通过脚本重新创建数据库

这是我们的另一个主要特点。对象代码(存储的过程、视图等)可以通过DROP/CREATE组合每次运行,但添加索引、删除列只能执行一次(如果没有res,则无法返回列的数据)