我计划使用现有程序的高级版本向客户发布我们的软件,该程序使用 Windows 批处理脚本。我希望改进此过程并自动安装以下项目:
- 文件。文件被简单地复制到目的地。
- MSSQL 数据库。我想我会使用 OSQL 命令对数据库运行这些命令。
- IIS 虚拟目录。Windows 的服务器版本通常安装了 IIS 工具包,其中包含一些用于从命令行创建虚拟目录和诸如此类的工具,所以我将使用它。我认为“iiscnfg”是我用来将以前保存的配置文件插入 IIS 的那个。
- Windows 服务。我们的服务能够从命令行自行安装。
因此,对于每个应用程序部署,我都有这样的结构:
Releases\
| get-release.bat
| Release1\
| Release2\
| Release3\
| | Content\
| | | Application1\
| | | | bin\
| | | | | Application1.exe
| | | | etc\
| | | | | Application1.config
| | | | db\
| | | | | CreateDatabase.sql
| | | | | CreateTable1.sql
| | | | | CreateTable2.sql
| | | | iis\
| | | | | Application1Web.xml
| | | | pre.bat
| | | | post.bat
| | | | environment.bat
| | | Application2\
| | | Application3\
| | | Application4\
| | Release1.doc
所以基本上你打开一个终端和 CD 到 Releases 目录,运行类似的命令:
get-release "Release3"
这将在 Release3 目录中的所有应用程序上运行一系列命令,并复制所有文件、配置、安装所有数据库和 iis 虚拟目录。
它还有一些其他功能,例如备份文件的目标目录等,但目前无关紧要。
我的问题是,是否有人有这样的部署经验,如果有任何错误,我可以从其他人的经验中学习。
不幸的是,我们不能使用 MSI 软件包或 NullSoft 软件包(我暂时不知道他的名字)。如果它不是这样完成的,它是手动完成的,所以我真的想在这里帮助自己。