我们的产品有100多个'件',其中大多数都是可选的“插件”。我们希望非程序员能够在每个客户/销售的基础上制作“自定义”安装程序。我们的理想只是一个具有文件夹结构的可执行文件/ msi,文件/文件夹可以从中删除,然后在运行时,安装程序根本不会提供与删除的位相对应的功能。
一个单独但相似的问题是这些插件的开发人员不是安装专家,我们不希望编辑共享安装程序源来从我们的构建集中添加/删除一个。我们一直在使用Advanced Installer的“synchronized folders”功能,但我们希望为每个插件提供单独的可选功能。
是否有可以支持此类(或类似)行为的安装程序工具链?
如果有的话,是否有人有关于如何使用所述工具实际实现它的提示?
答案 0 :(得分:2)
我在上一份工作中创建了这样一个工具堆栈。我们在典型的安装程序中与数十个服务系列,数百个功能,数千个合并模块和数万个文件进行了产品线开发。
每个合并模块都是使用IsWiX编写的,并使用WiX编译。然后,我们使用WiX XML作为构建自动化系统的输入,以生成InstallShield安装程序。服务系列将有一个XML文件来描述它的特征树的一部分,它将全部发送到一个空的InstallShield项目。
最后,产品XML文件将描述INSTALLDIR,UpgradeCode和其他元以及要使用的功能。我们从这个公共基本代码中构建了数十个和几十个安装程序。
这需要几天的时间来解释一切,但这会给你一个想法。对于更简单的环境,您可以创建一个用于生成WiX代码的UI,然后将其编译为MSI。
但我不知道我会把它交给非程序员。创建安装程序正在编程。
答案 1 :(得分:0)
在MSI包中没有工具在运行时创建功能,至少没有基于MSI的工具。这会使安装程序逻辑变得非常复杂,因为您需要一个非常复杂的自定义操作,该操作会读取安装程序旁边找到的文件夹的内容,然后在以下MSI表中生成条目:文件,目录,组件,功能,FeatureComponents。然后互相连接所有这些。
这根本不容易做到,并且非常容易出错,因为在构建MSI包方面没有丰富的经验。
您是否考虑过/尝试过任何非MSI包构建器?