【发布时间】:2014-07-23 16:42:43
【问题描述】:
我正在寻找一种解决方案来创建一个必须能够执行以下操作的安装程序:
- 在构建安装程序 exe 之前从多个服务器(使用 FTP、SVN 和 HTTP)收集资源(更新)
- 使用更新版本(自动)编译(以便可以使用快捷方式完成)
安装程序构建完成后,它被复制到没有互联网连接的机器上,应该能够:
- 将 Oracle 数据库更新到特定版本(使用安装程序获取资源时下载的 pl/sql 文件
- 根据版本号更新软件(替换文件) - 信息可以存储在注册表中
- 通过替换特定文件 (.ini) 中的字符串来更新软件
- 安装 windows 的服务和角色
- 使用 IIS(因此添加应用程序池等)
- 使用证书存储(安装 CA 等)
基本上,上面的许多事情(除了应用程序/oracle 更新程序)都可以使用 cmd.exe/PowerShell 并检查返回码来完成。
到目前为止,我一直在使用 NSIS 来完成更简单的任务,是的,代码看起来很长,但条件构建和循环非常明显。
我读到了有关 WiX 的文章,人们声称它很难学习,但您将来会受益。为什么?因为自动修复/卸载功能?
我想知道用 XML(函数、循环、条件)编写类似编程的代码是多么容易。
【问题讨论】:
-
WiX 很难学,因为 MSI 很难学。 WiX 只是 MSI 之上的一个抽象,用于创作 MSI。 MSI 很难学,因为教它的人很少,书面资源晦涩难懂,而且模型与大多数开发人员习惯的模型大不相同。
-
顺便说一句,可以从 MSI 中删除某些标准操作,以便它永远不会向系统注册自己。从这个意义上说,它可以用作复杂的脚本。微软将这种技术用于它的“Mr FixIt”包。
标签: powershell wix windows-installer nsis