为 Visual Studio 中的多个应用程序创建安装项目

Creating a Setup Project for multiple applications in Visual Studio

假设我有两个应用程序 - App A 和 App B,它们已经创建并且运行良好。现在我想创建一个新的安装项目,可用于为这两个应用程序创建安装文件。是否可以创建安装文件来安装这两个应用程序?我还想以这样的方式执行安装 - 一旦安装了应用程序 A,那么应该只安装应用程序 B。

谢谢。

使用 VS 安装项目,您可以创建一个安装(我假设您指的是 MSI 安装而不是 ClickOnce),其中包含来自两个应用程序的 "everything" - 文件、快捷方式、依赖项等。然后您将拥有一个单一的安装程序,它将安装并为您提供程序和功能中的一个条目。通常不需要 "A must install ok before B installs" 因为单个组合设置是事务性的,就像所有 MSI 安装一样 - 如果有任何失败,那么整个安装都会回滚。

如果 A 仅包含恰好打包为 B 和其他产品将要使用的 MSI 的功能,那么有时人们只是将 A 构建为合并模块并将其包含到 B(和其他设置)中,但是这取决于为什么有两个设置和 business/workflow 要求。

VS 不支持将单独的 MSI 文件组合成一个设置并在 A 成功时调节 B。您也可以编写一个运行两个 MSI 的启动器,但您会看到两组 UI 和 Programs&Features 中的两个条目,但您没有说明这些是否是您想要避免的事情。显然,如果 B 依赖于 A,并且 Programns&Features 中有两个条目,则用户可能会卸载 A 并破坏 B。

主要问题是您是否只想要一个启动器来安装一些 MSI 文件,每个文件都有自己的 UI 和程序和功能中的条目,或者您想要一个集成的体验,可以安装多个 MSI 文件并作为单个产品卸载。

除此之外,我知道人们使用 VS 之类的东西构建他们的 MSI 文件,然后使用 WiX Burn 引导程序将它们组合成一个产品,其中 Programs&Features 条目组合了所有 MSI 文件。

曾经有 Bootstrap Manifest Generator 工具可以让您将 A 添加为先决条件,因此 setup.exe 将安装先决条件,包括 A,然后安装 B,但是该工具及其很难找到文档,因为安装项目在 VS 2012 中被取消了。