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



我正在寻找一个解决方案来创建一个安装程序,必须能够做这样的事情:

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

安装程序构建完成后,在没有互联网连接的机器上复制它,并且应该能够:

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

基本上,上面的许多事情(除了app/oracle update)可以使用cmd.exe/PowerShell和检查返回代码来完成。

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

我读到关于WiX的文章,有人说它很难学,但你将来会受益。为什么?因为自动修复/卸载功能?

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

你的第一组子弹不是安装程序的功能,它是你的构建自动化/持续集成系统的功能。

你的第二组项目符号都是由WiX实现的,除了Oracle。本机只支持MSSQL。

WiX是一个创建Windows Installer (MSI)数据库的工具。重要的是要理解MSI是而不是脚本语言。它不是命令式(过程式或面向对象)编程模型,而是声明式编程模型。

MSI将如何做某事从做什么中抽象出来。表数据(WiX元素和属性)描述了需要做什么,MSI标准操作和WiX内置自定义操作实现了如何做到这一点。MSI在安装时评估表数据,并在安装事务中生成一个脚本来安装、卸载、回滚和提交安装更改。

这一点很重要的原因是,一旦您理解了模式(我承认这是一个艰难的过程),您的安装程序就会更简单、健壮和可伸缩。我曾经使用脚本语言编写过大量的安装程序,使用MSI时,我的工作效率和可靠性都要好得多。

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

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

的控制台自动执行

另一种选择可以是InnoSetup,它不需要花费任何东西,也可以完成上面的所有事情。链接:http://www.jrsoftware.org/isinfo.php

我不知道这两个系统是否都支持MAC或windows以外的其他操作系统。

选择哪个安装程序并不重要,根据您的需求,没有安装程序可以在没有定制的情况下完成安装过程。你必须学习相关的脚本语言。

希望我的回答有帮助?

相关内容

最新更新