Powershell WiX能像脚本一样工作吗?也许还有别的选择

Powershell WiX能像脚本一样工作吗?也许还有别的选择,powershell,wix,windows-installer,nsis,Powershell,Wix,Windows Installer,Nsis,我正在寻找一种解决方案来创建一个安装程序,该安装程序必须能够执行以下操作: 在构建安装程序exe之前,从多个服务器(使用FTP、SVN和HTTP)收集资源(更新) 使用更新版本(自动)编译(以便使用快捷方式完成) 安装程序生成后,将在没有internet连接的机器上复制,并应能够: 将Oracle数据库更新到特定版本(使用安装程序获取资源时下载的pl/sql文件 根据版本号更新软件(替换文件)-信息可以存储在注册表中 通过替换特定文件(.ini)中的字符串来更新软件 安装windows的服

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

  • 在构建安装程序exe之前,从多个服务器(使用FTP、SVN和HTTP)收集资源(更新)
  • 使用更新版本(自动)编译(以便使用快捷方式完成)
安装程序生成后,将在没有internet连接的机器上复制,并应能够:

  • 将Oracle数据库更新到特定版本(使用安装程序获取资源时下载的pl/sql文件
  • 根据版本号更新软件(替换文件)-信息可以存储在注册表中
  • 通过替换特定文件(.ini)中的字符串来更新软件
  • 安装windows的服务和角色
  • 使用IIS(因此添加应用程序池等)
  • 使用证书存储(安装CA等)
基本上,上面提到的许多事情(app/oracle updater除外)都可以使用cmd.exe/PowerShell和检查返回代码来完成

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

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


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

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

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

另一种选择是InnoSetup,它不需要任何费用,也可以努力完成上述所有工作。链接:

我不能说这两个系统都支持MAC还是windows以外的操作系统

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


希望我的回答有帮助?!

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

您的第二组项目符号均由WiX实现,Oracle除外。仅MSSQL本机受支持

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

MSI从what to do.表数据(WiX元素和属性)中抽象出如何做某事描述需要执行的操作以及MSI标准操作和WiX内置自定义操作实现如何执行。MSI在安装时评估表数据并生成脚本,以便在安装事务中安装、卸载、回滚和提交安装更改


这一点很重要的原因是,一旦你了解了这些模式(我承认这是一座很难爬的山)您的安装程序更加简单、健壮且可扩展。过去我使用脚本语言编写了大量安装程序,使用MSI我的生产力和可靠性都要好得多。

WiX很难学习,因为MSI很难学习。WiX只是MSI之上的一个抽象,用于编写MSI。MSI很难学习,因为MSI很少要教它的人,书面资源是神秘的,而且模型与大多数开发人员所习惯的非常不同。顺便说一句,可以从MSI中删除某些标准操作,使其永远不会在系统中注册。从这个意义上说,它可以用作复杂的脚本。Microsoft将此技术用于它的“Mr FixIt”包装。