2

我有一个在 Visual Studio 2012 中构建的应用程序,其中一部分使用 C#,一部分使用 C++。应用程序的 GUI 使用第三方 GUI 控件。

因此,我需要在项目中检查并安装三个依赖项:

  1. Microsoft Visual C++ 可再发行组件
  2. .NET 框架 4.5
  3. 图形用户界面控件

我的项目安装程序目前是使用 WiX 构建的。有没有办法让 WiX 执行以下操作?:

  1. 在安装时检查是否存在(例如)C++ 可再发行组件,如果不存在则安装它
  2. 在卸载时删除这些组件(当且仅当它们是在安装时安装的,显然)

如果不是,我猜答案是创建另一个可以依次运行每个 msi 的 C# 项目,但我希望能够通过 WiX 完成整个事情 - 有可能吗?如果是这样,怎么做?

4

2 回答 2

4

WiX 添加了作为 Windows Installer 工具集的最初目的。它现在有一个 bootstrapper/chainer/bundler/reboot manager/package manager,有时称为 Burn。在 Visual Studio 中,可以通过 WiX Bootstrapper 项目模板访问它。

您的应用程序需要有一个 WiX 设置项目。然后为四个设置定义一个链序列。VC 和 .NET 应该被标记为永久,因为您不知道是否以及何时应该卸载它们。GUI 控件可能也是如此。这留下了您的应用程序,引导程序在卸载时将卸载它。

于 2013-09-18T02:37:36.573 回答
1

您可以创建一个引导程序来安装您的应用程序及其先决条件。

WiX 工具集为您提供了所有必要的工具来创建包含不同包的捆绑包,其中之一就是您自己的 MSI。

查看 Burn 和 WiX 工具集文档。How To Guides 显示了实现您想要的目标的方法,例如,有一个教程描述了如何使用引导程序安装 .NET Framework

也许您正在寻找标准引导程序应用程序。或者查看定制的托管引导程序应用程序。例如,精美的 Visual Studio 2012 安装程序是 WiX MBA。但请注意,在我看来,MBA 是一项繁重的工作。

于 2013-09-18T22:45:45.797 回答