【问题标题】:WiX: Install and uninstall third party dependenciesWiX:安装和卸载第三方依赖项
【发布时间】:2013-09-17 14:13:50
【问题描述】:

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

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

  1. Microsoft Visual C++ 可再发行组件
  2. .NET 框架 4.5
  3. GUI 控件

我的项目安装程序目前是使用 WiX 构建的。有没有办法让 WiX 做以下事情?:

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

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

【问题讨论】:

    标签: windows visual-studio-2012 wix installation


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      查看 Burn 和 WiX 工具集文档。 How To Guides 展示了实现您想要的目标的方法,例如,有一个教程描述了如何Install the .NET Framework using a bootstrapper

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多