我们的安装程序是用Inno Setup编写的,我们对它非常满意.然而,一些客户不断要求MSI安装程序,他们可以通过Active Directory更轻松地分发.我们已经花了一些时间,通过/LOADINF
使用我们自己的选项扩展Inno Setup的机制,使安装程序与自动化和无人值守安装相得益彰.
为了满足客户要求MSI,我一直在考虑简单地将我们的常规安装程序包装在MSI中,可能是使用WIX创建的.问题是:我可以保持当前安装程序提供的高可配置性吗?在无人值守/大规模安装方案中,如何通过外部MSI公开Inno Setup安装程序的选项?
请注意,我还没有真正深入到实际挖掘MSI创建和WIX的程度.现在我只关心那些知道他们在说什么的人认为这是一种可行/合理的方法来投入我们的能量......
[编辑:]最初我认为我可以使用临时提取和执行方法,即MSI只是用作将Inno安装程序交付到目标PC并在其中以/VERYSILENT
-mode 执行的容器.但我想要求MSI的客户也希望能够从中央位置卸载甚至修改安装,我想在那种情况下这是不可能的,不是吗?
PS:我们在这里也有一份WISE for MSI的旧版本,但这种体验实际上就是为什么我们开始使用Inno来开始...
不,在保持客户"暗中"要求的功能的同时,没有办法做到这一点.您可以在MSI中唯一的"包装"是在安装时提取它并从您解压缩到的临时位置启动InnoSetup安装程序.MSI是一种根本不同的工作方式:InnoSetup(&NSIS和大多数其他安装程序)采用以代码为中心的方法:您"编程"安装数据的"步骤".MSI是一个数据库,采用"以数据为中心"的方法:指示应安装哪些文件,MSI'运行时'完成剩下的工作.这样可以为您提供版本控制和精确控制.
简而言之,为了给您的客户提供他们想要的东西(即MSI为AD带来的易部署性),您需要'正确'的MSI.祝你好运,这是一个主要的痛苦恕我直言.但是一旦你掌握了MSI和WiX,它确实会给你带来好的结果.
我自己多次遇到过这个问题.因此,我创建了一种解决此问题的标准方法,并生成了一个向导,指导您完成这些步骤.该工具将支持以下内容:
将exe包装在MSI中.
支持卸载.
仅在"添加或删除程序"中显示一个程序.
当您使用MSIEXEC.EXE运行MSI包时,允许您将命令行参数(如/ SILENT)传递给嵌入式安装程序.
你可以在http://www.exemsi.com上获得它(基本版是免费的)
使用我的联系表格让我知道你的想法:-)