【问题标题】:How to run multiple msi files如何运行多个msi文件
【发布时间】:2009-12-23 17:03:45
【问题描述】:

对于我的应用程序,我需要安装主应用程序并允许用户选择要安装的一个或多个附加功能。我试图运行主 msi 并有一个自定义操作来安装其他功能 msi 文件。但是,它不起作用,因为 MSI 不支持嵌套安装。我应该构建一个窗口应用程序并为用户提供选择并在内部按顺序调用 msi 文件吗?附加的 msi 文件是我们构建的自定义应用程序。它们不是先决条件。我们将这些特性分离到不同的 msi 文件中,因为我们希望在不重新编译主 msi 文件的情况下对特性 msi 文件进行更改。请帮忙!

谢谢。 艾米范

【问题讨论】:

  • 其他 MSI 是什么?如果它们是 SQL Server 2005 Express 等先决条件,则 VS 安装程序组件支持将它们作为安装过程的一部分进行安装。
  • 这些 msi 文件不是必备组件。这些 msi 文件是我们构建的自定义应用程序。
  • 您使用什么工具来创建您的 MSI?如何将这些其他应用程序作为功能添加到您的 MSI,即结果将是单个 MSI。
  • 我使用 Visual Studio 构建我的安装程序。我们将附加功能分离到不同的 msi 文件的原因是因为我们希望在不重新编译主 msi 的情况下对 features msi 文件进行更改。如果要更改某个功能,用户可以独立运行该功能 msi 文件,而无需担心主应用程序。如果您不了解我的设置,请告诉我。我真的需要帮助,因为我的经理希望我能找到解决方案。

标签: windows-installer installation


【解决方案1】:

我认为简短的回答是,您无法使用 MSI 执行您所描述的操作。由于 Windows Installer 一次只允许安装一个 MSI,您可能需要编写一个可以呈现 UI 的非 MSI 应用程序,并根据用户的选择顺序安装 MSI。如果您不想将 MSI 编译到主安装程序中,可以将它们用作外部资源。

【讨论】:

  • 感谢 CodeSawyGeek,我也做了同样的决定。我只是想问这个问题,以防万一我不知道有不同的解决方案。我已经开发了一个应用程序来做到这一点。
  • 嗯,现在您可以使用 MSI 4.5 或更高版本。上次看的时候,这些版本的渗透率还是蛮高的。
【解决方案2】:

由于 MSI 不支持嵌套安装(目前),您必须创建一个所谓的引导程序。这是一个单独的 .exe 文件,通常命名为 setup.exe。此 exe 的目的是在启动 MSI 之前(下载和)安装 MSI 的先决条件。

引导程序可以例如使用 Visual Studio 生成。

查看这个相关问题:

How to create installer inside another installer?

【讨论】:

  • 感谢 Divo,我希望您在线。我看到了您的一些答案,并认为您将是帮助我的最佳人选。这些 msi 文件不是先决条件。这些 msi 文件是与主应用程序交互的自定义​​应用程序。据我了解,引导程序仅安装先决条件。对于我的场景,我将运行主 msi 并提供一个用户界面对话框以允许用户选择其他应用程序。对于检查的所有其他应用程序,我需要安装这些 msi 文件。请帮忙。谢谢
  • 那么这个问题也许你也感兴趣:stackoverflow.com/questions/295138/…
  • 由于我的功能是 msi 文件,我不知道如何进行条件安装。我以为我可以使用自定义操作来安装这些 msi 文件,但正如您所指出的,msi 不支持嵌套安装。
  • 除非您需要 MSI 4.5 或更高版本,否则不支持嵌套/链式 MSI 安装。我认为,divo 关于合并模块 (MSM) 的参考文章是您想要的,尤其是在无法单独安装自定义应用程序的情况下。
猜你喜欢
  • 1970-01-01
  • 2015-03-24
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2011-12-30
  • 1970-01-01
  • 2011-11-23
相关资源
最近更新 更多