【问题标题】:Generating a WiX XML file at build and components questions在构建和组件问题中生成 WiX XML 文件
【发布时间】:2009-03-04 18:09:51
【问题描述】:

我正在尝试为我创建的网站编写安装程序。在 WiX 教程中它说“同样,一个组件应该只包含那些强烈地属于在一起的项目,以至于它们总是需要一起安装或删除。”。我相信整个网站都符合这个描述。我有两个关于组件的问题。首先是显然我的网站有很多目录,我不知道如何将所有目录/文件放入一个组件中(这甚至可能吗?),如果我从程序生成我的组件,我的 GUID 几乎肯定必须每个版本都不同,每个版本都会强制更改主要版本?有什么我遗漏的吗?

【问题讨论】:

    标签: wix installation windows-installer


    【解决方案1】:

    组件的文件不能跨越目录。 Windows 安装程序的限制。获得稳定的组件 ID 是一个棘手的问题,但是 WiX v3 中有一些新技巧可以为您处理这个问题。 Component/@Guid="*" 是诀窍。新的(就像上周一样)heat.exe 将为您生成似乎满足您需求的片段。

    【讨论】:

      【解决方案2】:

      我必须事先承认,我在 WIX 方面的经验非常有限。但是,我的印象是一个组件映射到一个可安装的东西,比如文件或 dll。这些被安排到组件组中,然后添加到功能中。功能是作为单元安装的东西,例如:核心、文档和示例。在这种情况下,您总是需要核心组件,但可以省略文档和示例功能。

      我不认为更改组件的 GUID 会迫使您更改主要版本号。

      我自己在使用 WIX 时遇到了困难,因为学习曲线可能非常陡峭。我希望这会有所帮助。

      【讨论】:

      • 据我了解,简单地添加或删除文件被视为“重大升级”。几乎每个版本的 Web 应用程序都会添加和删除文件,但这对我来说不是重大升级。
      • 或许您应该考虑其他方式来部署您的 Web 应用程序?
      【解决方案3】:

      经历过这些,这是我的建议:

      1. 每个文件都应该有它自己的组件。
      2. 如果您按照步骤 1 进行操作。正如 Rob 所说,每个组件都可以具有属性 GUID="*"
      3. ComponentGroup 是你的朋友 :)
      4. 如果将 ProductCode 设置为 * 并将 UpgradeCode 保留为固定 GUID,则不必为每次升级编写新的升级安装程序,因为您的 MSI 既是新的安装安装程序,也是升级安装程序。为了帮助控制这个you need to understand Upgrade 和 UpgradeVersion 元素。

      还有一些tricks here

      【讨论】:

        猜你喜欢
        • 2016-07-29
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-25
        • 2018-03-20
        相关资源
        最近更新 更多