Windows installer 将Inno安装程序封装在MSI中以便于通过AD分发是否可行/合理?

Windows installer 将Inno安装程序封装在MSI中以便于通过AD分发是否可行/合理?,windows-installer,inno-setup,Windows Installer,Inno Setup,我们的安装程序是用Inno安装程序编写的,我们对它非常满意。然而,一些客户不断要求MSI安装程序,他们可以更容易地通过Active Directory分发。通过使用我们自己的选项扩展Inno Setup的/LOADINF-机制,我们已经竭尽全力使安装程序能够很好地处理自动化和无人值守的安装 为了满足客户对MSI的需求,我一直在考虑简单地将我们的常规安装程序包装在MSI中,可能是使用WIX创建的。问题是:我能否保持我们当前安装程序以这种方式提供的高配置性?在无人值守/大规模安装场景中,如何通过外部

我们的安装程序是用Inno安装程序编写的,我们对它非常满意。然而,一些客户不断要求MSI安装程序,他们可以更容易地通过Active Directory分发。通过使用我们自己的选项扩展Inno Setup的
/LOADINF
-机制,我们已经竭尽全力使安装程序能够很好地处理自动化和无人值守的安装

为了满足客户对MSI的需求,我一直在考虑简单地将我们的常规安装程序包装在MSI中,可能是使用WIX创建的。问题是:我能否保持我们当前安装程序以这种方式提供的高配置性?在无人值守/大规模安装场景中,如何通过外部MSI公开Inno Setup安装程序的选项

请注意,我还没有真正深入到MSI的创建和WIX本身。现在我只关心那些知道他们在谈论什么的人是否认为这是一种可行/明智的方法,可以首先投资我们的能源

[编辑:] 起初,我认为我可以使用临时提取和执行方法,即MSI将只是一个容器,用于将Inno安装程序交付到目标PC,并在那里以
/VERYSILENT
-模式执行。但我猜要求安装MSI的客户也希望能够从中心位置卸载甚至修改安装,我猜在这种情况下是不可能的,是吗


附言:我们这里也有一个WISE for MSI的旧版本,但这种体验实际上是我们开始使用Inno的原因…

不,在保持客户“隐含”要求的功能的同时,没有办法做到这一点。MSI中唯一可以做的“包装”是在安装时将其解压缩,并从解压缩到的临时位置启动InnoSetup安装程序。MSI是一种完全不同的工作方式:InnoSetup(&NSIS和大多数其他安装程序)采用以代码为中心的方法:您“编程”安装数据的“步骤”。MSI是一个数据库,采用“以数据为中心”的方法:您指定应该安装哪些文件,MSI“运行时”完成其余工作。这为您提供了版本控制和精确控制


简言之,为了满足客户的需求(即MSI随AD带来的易于部署),您需要“适当”的MSI。祝你好运,这是我最大的痛苦。但是一旦你掌握了MSI和WiX,它确实会产生很好的效果。

这样做相当于在安装结束时提供一个ZIP文件并调用unzip

如果采用这种方法,AD和Windows Installer将被愚弄,就像处理正确的MSI安装一样,但事实并非如此,它们在第一次使用时就会适得其反

不要走这条路


无论如何,WiX是优于InnoSetup的工具集,因此您花在学习和移植上的时间将通过更好的协作支持得到回报。

针对您的编辑:是的,您所描述的将阻止进行升级(除了删除/重新安装)和远程配置,因为MSI数据库对安装程序的内容一无所知


许多安装程序包以这种方式启动MSI“支持”,但InstallShield就是这样做的。这就是我抛弃它们的主要原因,因为以这种方式制作的安装程序对于MSI来说是无用的。我不知道InstallShield的最新版本是否更好,我上次检查是在5年前。

制作一个包装工具包,从MSI自动安装INNOSETUPper非常容易。对于基本功能(安装/卸载),这就足够了。大多数安装程序都不会执行修复

  • 为INNO安装程序创建silent.inf脚本(可选)

  • 创建调用install.bat的install.bat

    myinnosetup.exe/silent/NOCANCEL/norestart/Components=“xxx”

    您可以使用/verysilent
    您可以使用/LOADINF=“silent.inf”从silent.inf加载设置

  • 创建调用install.bat的MSI安装文件(必要时带参数)

  • 将所有4个文件交付给您的客户,他们可以使用SMS或ActiveDirectory部署您的Inno setupper,每个人都很高兴:)


  • 尽管最后一条评论是可行的,但转移到MSI是处理这一问题的最佳方式

    几乎所有大型组织都只规定MSI,原因有很多

    1) 首先是易于部署 2) 对某些人来说,更重要的是应用程序的社交性 3) 自愈

    inno安装程序和其他未实现Windows Installer的此类工具无法以与Windows Installer相同的方式提供应用程序社交功能

    您必须了解Inno setup是专为部署单个应用程序而设计的软件

    Windows Installer是一个完整的框架,用于处理社交性、用户模拟、用户提升、自我修复和用户配置文件修复

    他们两个甚至在功能上都不是很接近,在我看来,inno安装程序与windows安装程序相比完全和完全偏离了方向

    它能创建成功的安装程序吗?对 它容易使用吗?对 它是否能创造出优秀的单一安装程序?对 是企业的最佳选择吗?没有


    微软“SMS安装程序”最早开发的工具是10年前的innosetup。安装领域的情况发生了巨大的变化,inno安装程序根本没有跟上这种变化的步伐

    我认为,使用MSI包装的Inno安装程序可以完成所有您想做的事情,但这绝非小事,使用WiX可能会使这项特定任务更加困难。简而言之,我不会真的推荐它

    但是如果你真的想

    MSI文件只是数据库文件