将Inno Setup安装程序包装在MSI中以便通过AD进行更轻松分发是否可行/合理?

将Inno Setup安装程序包装在MSI中以便通过AD进行更轻松分发是否可行/合理?

Is it feasible/sensible to wrap an Inno Setup installer inside an MSI for easier distribution via AD?

我们的安装程序是使用Inno Setup编写的,实际上我们对此感到非常满意。但是,有些客户一直在要求MSI安装程序,他们可以更轻松地通过Active Directory进行分发。我们已经竭尽全力通过使用我们自己的选项扩展Inno Setup的/LOADINF机制来使安装程序真正很好地处理自动化和无人值守的安装。

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

请注意,我还没有真正深入研究MSI创建和WIX。现在,我只对确实知道他们在说什么的人们是否感兴趣,首先认为这将是一种可行/明智的方法来投资我们的精力...

[编辑:]
最初,我认为我可以使用临时提取和执行方法,即MSI只是充当将Inno安装程序交付到目标PC并以/VERYSILENT模式在其中执行的工具。但是我想要求MSI的客户也希望能够从中央位置卸载甚至修改安装,我想在这种情况下是不可能的,对吗?

附注:我们这里也确实有MISE的WISE的旧版本,但是这种经验实际上就是我们开始使用Inno的原因。


不,在保持客户"隐式"要求的功能的同时,无法做到这一点。 MSI唯一可以做的"包装"是在安装时将其解压缩,然后从提取到的临时位置启动InnoSetup安装程序。 MSI是一种根本不同的工作方式:InnoSetup(和NSIS和大多数其他安装程序)采用以代码为中心的方法:您对"步骤"进行"编程"以安装数据。 MSI是一个数据库,并采用"以数据为中心"的方法:您指示应安装哪些文件,其余由MSI"运行时"完成。这使您可以进行版本控制,并可以精确控制操作位置。

简而言之,要满足客户的需求(即MSI随AD带来的易于部署),您将需要"适当的" MSI。祝你好运,这是恕我直言的主要痛苦。但是,一旦您掌握了MSI和WiX,它的确会带来不错的结果。


我本人曾多次遇到这个问题。因此,我创建了一种解决此问题的标准方法,并产生了一个向导,它将指导您完成这些步骤。该工具将支持以下内容:

  • 将exe包装在MSI中。
  • 支持卸载。
  • 仅在"添加或删除程序"中显示一个程序。
  • 使用MSIEXEC.EXE运行MSI程序包时,允许您将命令行参数(例如/ SILENT)传递给嵌入式安装程序。
  • 您可以在http://www.exemsi.com上获得它(基本版本是免费的)

    使用我的联系表格,让我知道您的想法:-)


    在MSI程序包中包装Inno Setup并非易事。但是,这是可能的。有很多免费工具可用于执行此操作。您应该选择一种还支持卸载和升级的软件。

    我发现只有一个免费工具支持升级和卸载。查看http://www.exemsi.com/inno-setup-and-msi


    混合安装技术没有任何意义。

    如果您混合使用,则会遇到卸载问题的第一个问题。
    没有任何更改,您会得到2个程序的卸载程序。

    在" entwickler杂志"中有一些以Windows安装程序开头的文章

    • Entwickler Magazin(Ausgabe:03.09 / 15.04.2009)Artikel:MSI-Pakete mit开放源代码软件erzeugen Teil
      4
    • Entwickler Magazin(Ausgabe:02.09 / 12.02.2009)Artikel:MSI-Pakete mit开放源代码软件erzeugen Teil
      3
    • Entwickler Magazin(Ausgabe:01.09 / 10.12.2008)Artikel:MSI-Pakete mit开放源代码软件erzeugen Teil
      2
    • Entwickler Magazin(Ausgabe:06.08 / 15.10.2008)Artikel:MSI-Pakete mit开放源代码软件erzeugen

    http://entwickler-magazin.de/

    Windows安装程序应该是您安装的唯一技术。
    它的未来证明和稳定!


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

    但是如果您真的想...

    MSI文件只是带有附加脚本说明的数据库文件,并且通常嵌入.cab文件,其中包含您实际要安装的内容。

    如果使用Wise,则将生成默认脚本,然后可以将其添加Windows Installer条件并更好地控制事件(安装,修复,修改,卸载),以便它们在Inno Setup安装脚本上调用等效操作,需要安装并保存在一个临时文件夹中。


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

  • 为INNO设置创建silent.inf脚本(可选)

  • 创建调用的install.bat

    myinnosetup.exe / silent / NOCANCEL / norestart / Components =" xxx"

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

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

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


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

    但是,许多安装程序包都是通过这种方式启动MSI"??支持"的:例如,InstallShield做到了。这是我转储它们的主要原因,因为以这种方式制作的安装程序对于MSI而言是无用的。我不知道最新版本的InstallShield是否更好,我上次检查是5年前。


    我需要在silent.inf(不是稳定的inno设置设置值)上输入一个custome值,就像LOADINF允许的那样。

    注意:如果使用makemsi,则不必包含bat,因为可以使用$ WrapInstall。


    尽管最后的评论是可行和可行的,但改用MSI是处理此问题的最佳方法。

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

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

    inno安装程序和其他未实现Windows Installer的工具根本无法以与Windows Installer相同的方式提供应用程序社交性。

    您必须了解Inno设置是旨在部署单个应用程序的软件。

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

    两者甚至在功能上都不遥不可及,在我看来,与Windows Installer相比,nono设置完全偏离了路线。

    它可以创建成功的安装程序吗?是
    这个容易用吗 ?是
    它会创建好的单一安装程序吗?是
    这是企业的最佳选择吗?没有

    微软" SMS Installer"开发的最早工具是10年前的innosetup。在安装环境中,情况发生了巨大变化,并且inno设置根本没有跟上这种变化的步伐。


    这样做几乎等同于交付一个ZIP文件并在安装结束时调用unzip。

    通过这种方法,AD和Windows Installer会像对待正确的MSI安装一样被愚弄,但事实并非如此,它们在第一次出现时就会适得其反。

    不要这样

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


    推荐阅读

      linux的安装软件命令?

      linux的安装软件命令?,软件,系统,名称,发行,官方网站,市场,官网,密码,网站,

      linux安装dbe命令?

      linux安装dbe命令?,系统,电脑,通用,数据,环境,变动,在线,业务,信息,网站,LINU

      linux命令执行安装?

      linux命令执行安装?,软件,系统,管理,网站,官网,市场,中心,最新,灵活,工作,如

      linux系统安装命令集?

      linux系统安装命令集?,系统,软件,工作,工具,在线,信息,数据,官方网站,基础,

      dd命令安装linux?

      dd命令安装linux?,标准,设备,数据,系统,名称,位置,环境,信息,数字,情况,安卓L

      终端命令行安装linux?

      终端命令行安装linux?,软件,系统,工具,终端,工作,状态,公司,官网,中心,时间,l

      gpg命令安装linux?

      gpg命令安装linux?,系统,环境,软件,管理,在线,最新,密码,不了,信息,命令,为什

      linux更新安装命令行?

      linux更新安装命令行?,软件,系统,工作,在线,地址,名称,官网,命令,中心,情况,L

      linux命令安装ndk?

      linux命令安装ndk?,系统,平台,工具,工程,信息,代码,百度,环境,位置,名字,如何

      linux命令行安装软件?

      linux命令行安装软件?,软件,系统,官网,工具,名称,在线,灵活,发行,中心,最新,L

      安装时linux常用命令?

      安装时linux常用命令?,系统,工作,基础,地址,信息,工具,软件,命令,在线,数据,l

      linux终端安装命令?

      linux终端安装命令?,软件,官网,工作,信息,公司,网站,电脑,市场,中心,系统,Lin

      linux安装解压命令?

      linux安装解压命令?,系统,工具,管理,命令,文件,电脑,名称,格式,文件名,目录,l

      命令查询linux包安装?

      命令查询linux包安装?,软件,地方,地址,名字,系统,名称,信息,路径,命令,文件,

      linux用命令安装软件?

      linux用命令安装软件?,软件,系统,在线,官网,检测,代码,定期,官方网站,名称,

      linux命令安装火狐?

      linux命令安装火狐?,官网,软件,地址,最新,首次,简介,代码,系统,官方网站,第

      linux动画命令安装?

      linux动画命令安装?,环境,系统,情况,概念,服务,命令,文件,模块,终端,目录,lin

      linux虚拟机命令安装?

      linux虚拟机命令安装?,系统,软件,工具,虚拟机,网络,状态,操作系统,命令,文

      linux安装内部命令?

      linux安装内部命令?,软件,官网,在线,系统,百度,发行,命令,终端,方式,服务器,l

      linux清除安装命令?

      linux清除安装命令?,软件,系统,名称,工具,信息,电脑,终端,命令,程序,面板,lin