【问题标题】:Why use Windows Installer XML (WiX) over VDPROJ?为什么在 VDPROJ 上使用 Windows Installer XML (WiX)?
【发布时间】:2011-02-07 19:18:50
【问题描述】:

当我们有内置的 .net MSI 安装程序时,为什么还要选择 Windows Installer XML (WiX)?

【问题讨论】:

    标签: installation wix windows-installer


    【解决方案1】:

    我要花几个小时来抱怨我讨厌 VDPROJ 的一切。我不会,因为在我(专家)看来,VDPROJ 糟透了已经是既定的法律。如果您的安装如此简单以至于您没有发现任何问题,那么请按照我的猜测坚持下去。但是,如果您已经发现自己正在与该工具作斗争,试图让它做它不做的事情,那么请听从我的建议,并迅速将其转用于 WiX。

    我讨厌 VDPROJ 的 10 件事

    1. 不支持 MSBuild。当然,您可以从命令调用 devenv 线,但它不是那么好。
    2. 没有暴露关键概念 一个组件。每个文件/注册密钥都是它自己的组件的密钥文件。
    3. 没有完全排除自动依赖扫描的有效方法。
    4. 总是广告快捷方式
    5. 无法描述服务。
    6. 无法描述许多导致过度使用习惯的事情 行动。
    7. 没有办法精细控制调度/执行 自定义动作。太抽象了。
    8. 抽象是错误的。延期 CA 计划使用在 Vista 上中断的模拟。
    9. 各种限制导致您走上按摩内置 MSI 的道路 在后期构建期间绕过所有限制。结果是 非常糟糕的构建自动化黑客。
    10. 合并模块目录表 被错误地创作。
    11. 还有 100 件我不擅长的事情 现在想起来了。

    【讨论】:

    • 不要退缩,说出你的意思:-)
    • 我花了一年的时间在一个包含数千个 vdproj 合并模块和超过 1000 个 InstallUtil 自定义操作的环境中工作,其中包含大量构建自动化黑客以使其全部工作。我从非常深刻的经验中知道 VDPROJ 有多糟糕,我不希望它在我的敌人身上。
    • 我同意其中的大部分内容,+1。在我看来,根本不应该使用 VDPROJ,但我知道 Chris Painter has found a few fringe uses 在他写这个答案之后或之前的项目类型。这并没有改变项目类型基本上都是麻烦的事实。当需求很奇怪时,专家可能会做错一些事情。
    【解决方案2】:

    introduction of WiX tutorial 给出了与其他设置开发工具(包括 VS 设置项目)相比 WiX 优势的基本概念:

    • 声明式方法
    • 不受限制地访问 Windows 安装程序功能
    • 源代码而不是基于 GUI 信息汇编
    • 完全集成到应用程序中 构建流程
    • 可能与应用程序集成 发展
    • 支持团队开发,两者 内部和第三方
    • 免费、开源

    希望这会有所帮助。

    【讨论】:

    【解决方案3】:

    Visual Studio 部署包只能由 Visual Studio 构建。它们不能使用普通的 MSBuild 命令行构建,这使得它们不太适合例如构建服务器。

    【讨论】:

    • 这就是我使用 WiX 的原因 - 让我可以巧妙地将一些我想要的实用程序应用程序打包为构建服务器中的工件
    【解决方案4】:

    以上所有答案都包含了 Visual Studio 设置项目 (.VDPROJ) 的大部分烦人功能,这是大多数人都错过的一件事。

    .VDPROJ 文件格式是这样的,如果我们做一个小 更改为一个条目,它会完全重写所有条目 在其中 无法合并来自 2 个不同的更改 分支。

    【讨论】:

      【解决方案5】:
      1. 我们中的一些人不想使用/不能使用 .NET 安装程序。
      2. 我们中的一些人不希望必须安装 Visual Studio 来分发用 Borland Delphi 等编写的程序。 WiX 和 .NET 彼此没有任何关系。
      3. WiX 提供了比 .NET 安装程序更完整的功能集。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        • 1970-01-01
        相关资源
        最近更新 更多