我计划的一个步骤,以释放我们的软件给我们的客户使用的高级版本的现有过程,它使用的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

所以基本上你打开一个终端和光盘的释放目录、运行命令的东西,如:

get-release "Release3"

这将进行一系列的命令对所有的应用程序在Release3目录和复制所有文件、配置、安装所有的数据库和iis虚拟目录。

有一点小小的更多它像是备份目录的文件,等等。但是其无关紧要的时刻。

我的问题是是否任何人有任何经验做一个部署这样,如果有任何错误,我可以学习其他民族的经验。

不幸的是,我们不能去与装置包装或NullSoft人(谁的名字我的时刻).如果它不这样做像这样的这是手工完成的所以我真的想要帮助自己在这里。

有帮助吗?

解决方案

我滚几个脚本,这样的丑陋的部分处理的是错误的处理-你怎么检测的错误,你是做什么的时候他们会出现,你可以滚回你所有的更改日期,等等。相对简单,如果你正在做一个全新安装,几乎没有那么简单如果你在更新现有系统。(你不应该假定,它将完全运作的每一个时候--明天的MS更新可能会破坏今天的剧本,后所有的.)

只是有几件事情;)你不能合理地从内的一批文件。你能滑VB脚本、java脚本,一些Powershell电话,或其他任何处理困难的东西?

其他提示

我没有看到任何问题做这样的事情有一批文件。但是,你们要想一想到什么之间的一些差异机(缺失的目录,已经存在的目录,已经存在的文件,文件的版本,等等)。 可能是,解决这些问题,并测试真的以及在各种各样的机器。

这太糟糕了,你不能使用安装程序,因为安装人员已经减轻大多数的这些问题。从本质上讲,你会被自己的安装,并且你将不会受益于经验教训、最佳做法等, 这一安装程序会给你。

另一件事,你可能无法做到的,没有一个安装的是安装一个文件,该文件被锁定由操作系统。安装人员处理这个通过复制文件的一个临时位置,把"负载上重新启动"进入登记册,然后要求用户重新启动的计算机。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top