除了 MS Web Deploy,你能推荐一个完整的网络发布工具吗?

Can you suggest a complete web publish tool except MS Web Deploy?

我需要一个可以做这些的网络发布工具。

  1. 将网络代码发布到目的地
  2. Sql 架构和数据比较并保存 table 比较的列表。
  3. 使用新代码重启服务

感谢您的帮助。

我们当前的部署过程包括三件事

  1. 源代码控制(Visual Studio 在我们的案例中在线)
  2. TeamCity 用于构建我们的 .NET 网络应用程序
  3. Octopus Deploy 用于从 TeamCity
  4. 部署构建的包

这个过程非常简单,大部分工作都是自动化的。

将代码签入 master 分支后,TeamCity 将检测更改并开始我们的构建过程,该过程包括以下步骤:

  1. 恢复 NPM 包
  2. 运行 gulp 脚本编译 SASS 文件并压缩和打包 JavaScript
  3. 在发布配置中使用 MSBuild 构建 Web 应用程序
  4. 在 Octopus Deploy 中创建一个版本

这也是在开发人员方面没有任何工作的情况下完成的。

我们大多数网络应用程序在 Octopus Deploy 中的设置方式如下:

  1. 检索从 TeamCity 构建的包(以 nuget 包的形式)
  2. 部署 Web 应用程序,在此过程中执行任何 Web.config 转换。
  3. 使用 Topshelf 部署任何 Windows 服务,这也执行所需的 App.config 转换

创建发布后,Octopus Deploy 会自动将其部署到我们的内部开发服务器,因此再次无需任何工作即可开始测试新代码。一旦每个人都满意了,我们再按一个按钮,它就会部署到我们所有的生产服务器上。

Octopus Deploy 也有能力部署数据库模式更改等,这在 article 中有所介绍,我们在我们的 change-script-driven 方法中使用了案例.