我有一个应用程序,其中包含一个 ASP.NET Web 应用程序、几个 Windows 服务和一个 SQL Server 2005 数据库。此应用程序在多个站点复制,因此每个站点都有一个包含所有部分(Web 应用程序、服务和数据库)的服务器。目前部署更新的过程是这样的:
数据库
- 编写数据库更改脚本(使用 Management Studio 中的生成脚本)。
- 在 Management Studio 中连接到网站的数据库。
- 在站点的数据库上运行 SQL 脚本。
- 对每个站点重复 2 和 3。
网络应用
- 在 Visual Studio 中使用发布。
- 从发布的副本中删除 web.config。
- 压缩网络应用程序文件。
- 将 zip 文件复制到站点。
- 远程桌面进入该站点以解压缩文件。
- 必要时手动修改 web.config。
- 对每个站点重复 4-6。
Windows 服务
- 在 Visual Studio 中构建项目。
- Zip 重建二进制文件。
- 将 zip 文件复制到站点。
- 远程桌面进入该站点。
- 停止服务。
- 卸载旧版本。
- 安装新版本。
- 必要时手动修改 .config。
- 启动服务。
- 对每个站点重复 3-9。
目前有 3 个站点,部署很烦人但可以管理,但是在一年内我们很可能会有 10 或 11 个站点,必须以这种方式部署更新会让我想自杀。
因此,我正在寻找有关如何自动执行此过程的建议。我已经开始研究学习 MSBuild 以合并配置并将文件复制到我的服务器,但我不确定它会带我走多远。谢谢。
最佳答案
采用您熟悉的任何脚本语言(看起来甚至 .bat 也适合您)并获得 PsTools
然后您可以使用 psexec 和 psservice 远程控制进程和服务。您仍然需要自己编写脚本,但不必远程登录(例如,解压缩和复制文件),适用于一台服务器的内容也适用于 10 台服务器。
关于.net - 将应用程序更新部署到多个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/687781/