WiX:安装和卸载第三方依赖项

时间:2013-09-17 14:13:51

标签: windows visual-studio-2012 wix installation

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

因此,我有三个依赖项需要检查并与我的项目一起安装:

  1. Microsoft Visual C ++可再发行组件
  2. .NET framework 4.5
  3. GUI控件
  4. 我的项目安装程序目前使用WiX构建。有没有办法让WiX执行以下操作?:

    1. 在安装时检查是否存在(例如)C ++可再发行组件,如果不存在则安装它
    2. 在卸载时删除这些组件(当且仅当它们在安装时安装时,显然)
    3. 如果没有,我的猜测是答案是创建另一个可以依次运行每个msi的C#项目,但我希望能够通过WiX完成整个过程 - 是否可能?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:4)

WiX最初的目的是成为Windows Installer工具集。它现在有一个bootstrapper / chainer / bundler / reboot管理器/包管理器,有时称为Burn。在Visual Studio中,可以通过WiX Bootstrapper项目模板访问它。

您需要为您的应用程序安装WiX安装项目。然后为四个设置定义一个链序列。 VC和.NET应标记为永久性,因为您不知道是否以及何时应该卸载它们。同样的事情可能适用于GUI控件。这将离开您的应用程序,引导程序将在卸载时卸载。

答案 1 :(得分:1)

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

WiX工具集提供了所有必要的工具,您可以创建包含不同包的包,其中一个包是您自己的MSI。

查看Burn和WiX工具集文档。 “操作指南”展示了如何实现您想要的内容,例如,有一个教程描述如何Install the .NET Framework using a bootstrapper

也许Standard Bootstrapper Application正是您要找的。或者看一下自定义Managed Bootstrapper应用程序。例如,花哨的Visual Studio 2012安装程序是WiX MBA。但请注意,在我看来,MBA是一项很多工作。