.net - 将应用程序更新部署到多个站点

标签 .net asp.net windows deployment

我有一个应用程序,其中包含一个 ASP.NET Web 应用程序、几个 Windows 服务和一个 SQL Server 2005 数据库。此应用程序在多个站点复制,因此每个站点都有一个包含所有部分(Web 应用程序、服务和数据库)的服务器。目前部署更新的过程是这样的:

数据库

  1. 编写数据库更改脚本(使用 Management Studio 中的生成脚本)。
  2. 在 Management Studio 中连接到网站的数据库。
  3. 在站点的数据库上运行 SQL 脚本。
  4. 对每个站点重复 2 和 3。

网络应用

  1. 在 Visual Studio 中使用发布。
  2. 从发布的副本中删除 web.config。
  3. 压缩网络应用程序文件。
  4. 将 zip 文件复制到站点。
  5. 远程桌面进入该站点以解压缩文件。
  6. 必要时手动修改 web.config。
  7. 对每个站点重复 4-6。

Windows 服务

  1. 在 Visual Studio 中构建项目。
  2. Zip 重建二进制文件。
  3. 将 zip 文件复制到站点。
  4. 远程桌面进入该站点。
  5. 停止服务。
  6. 卸载旧版本。
  7. 安装新版本。
  8. 必要时手动修改 .config。
  9. 启动服务。
  10. 对每个站点重复 3-9。

目前有 3 个站点,部署很烦人但可以管理,但是在一年内我们很可能会有 10 或 11 个站点,必须以这种方式部署更新会让我想自杀。

因此,我正在寻找有关如何自动执行此过程的建议。我已经开始研究学习 MSBuild 以合并配置并将文件复制到我的服务器,但我不确定它会带我走多远。谢谢。

最佳答案

采用您熟悉的任何脚本语言(看起来甚至 .bat 也适合您)并获得 PsTools

然后您可以使用 psexec 和 psservice 远程控制进程和服务。您仍然需要自己编写脚本,但不必远程登录(例如,解压缩和复制文件),适用于一台服务器的内容也适用于 10 台服务器。

关于.net - 将应用程序更新部署到多个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/687781/

相关文章:

c# - 字符串比较的奇怪之处

.net - 如果程序集被添加到 GAC 中,它引用的所有程序集是否也需要添加到那里?

c# - 如何使 c#.net 应用程序可移植

asp.net - IIS的Crystal Report问题-(bobj未定义,Crystal报表不显示)

asp.net - 如何在 ASP.NET webfroms 中为网站开发两个不同的菜单栏(一个用于所有用户,另一个用于管理员)?

c# - 解耦 ASP.NET MVC 5 Identity 以允许实现分层应用程序

python - 无法在 Windows/MSYS2 下从 bash 脚本运行 MATLAB

c# - WCF 推荐序列化多个对象的方法

windows - SVN命令更新而不恢复文件

c++ - 在 Windows 10 上使用 vcpkg 安装 Dear ImGui