WiX可以像脚本一样吗?也许还有另一种选择

时间:2014-06-03 11:07:43

标签: powershell wix windows-installer nsis

我正在寻找一种解决方案来创建一个必须能够执行以下操作的安装程序:

    构建安装程序exe之前
  • 从多个服务器(使用FTP,SVN和HTTP)收集资源(更新)
  • 使用更新版本(自动)编译(以便可以使用快捷方式完成)

构建安装程序后,它将复制到没有Internet连接的计算机上,并且应该能够:

  • 将Oracle数据库更新为特定版本(使用安装程序获取资源时下载的pl / sql文件
  • 根据版本号更新软件(替换文件) - 信息可以存储在注册表中
  • 通过替换特定文件(.ini)中的字符串来更新软件
  • 安装Windows的服务和角色
  • 使用IIS(因此添加应用程序池等)
  • 使用证书存储区(安装CA等)

基本上上面的许多内容(app / oracle updater除外)都可以使用cmd.exe / PowerShell并检查返回代码来完成。

到目前为止,我使用NSIS进行简单的任务,是的,代码看起来很长,但有条件的构建和循环非常明显。

我读到了WiX,人们声称它很难学,但你将来会受益。为什么?由于自动修复/卸载功能?

我想知道在XML(函数,循环,条件)中编写类似编程的代码是多么容易。

2 个答案:

答案 0 :(得分:3)

您的第一组项目符号不是安装程序的功能,它是您的构建自动化/持续集成系统的功能。

除了Oracle之外,你的第二组子弹都是由WiX实现的。 MSSQL仅受原生支持。

WiX是一种创作Windows Installer(MSI)数据库的工具。了解MSI NOT 是一种脚本语言非常重要。它不是命令式(程序性或OO)编程模型,而是一种声明式编程模型。

MSI摘要如何做某事来做什么。表数据(WiX元素和属性)描述了需要完成的工作,MSI标准操作和WiX内置自定义操作实现了如何执行操作。安装时的MSI评估表数据并生成脚本以在安装事务中安装,卸载,回滚和提交安装更改。

这一点很重要的原因是,一旦你了解了这些模式(一个艰难的攀登小山,我会承认),你的安装人员会更简单,更强大,更具可扩展性。我以前使用脚本语言编写了安装程序的大部头,使用MSI我的工作效率和可靠性要好得多。

答案 1 :(得分:1)

对于我的观点,使用哪个更大的安装程序解决方案并不重要,您的要求需要一个可以通过脚本自定义的安装程序。因此,学习这种或那种脚本语言并不容易或更困难。

WiX可以做所有这些事情,你想做什么。它有这样的机会: - 条件构建 - 自定义脚本 - 使用自定义参数 - 可以通过名为build

的控制台实现自动化

替代方案可能是InnoSetup,它不需要任何费用,也可以为上述所有事情付出努力。链接:http://www.jrsoftware.org/isinfo.php

我不能说两个系统是否支持MAC或其他操作系统而不是Windows。

选择哪个安装程序并不重要,根据您的要求,没有安装程序可以在没有自定义的情况下执行安装过程。你必须学习依赖脚本语言。

希望我的回答有帮助?!