【问题标题】:Automatically keeping WiX installer updated with newly created files使用新创建的文件自动更新 WiX 安装程序
【发布时间】:2011-12-23 01:09:59
【问题描述】:

我在 Visual Studio 2010 下有一个 Web 应用程序解决方案。该解决方案的一部分是负责生成 .msi 安装程序的 WiX 项目。

当我遇到以下情况时,我正在阅读 WiX 教程以了解如何自动收集文件:

http://wix.tramontana.co.hu/tutorial/com-expression-syntax-miscellanea/components-of-a-different-color

作为 WiX 中的一种工具,Heat 用于从各种来源(文件夹、文件、DLL、ActiveX 控件、性能计数器、网站)收集数据,其中条目数量可能太大而无法手动创建相应的 WiX 源文件。它的主要目的是运行一次,以收集稍后在源文件的日常维护中使用的数据,而不是作为构建环境的一部分,在该环境中它在不断变化的输入数据集上一遍又一遍地运行。如果您仍想以第二种方式使用它,则必须非常小心以确保输入中的更改不会引入不受欢迎的效果(主要是破坏组件规则)。 Heat 确实具有帮助您实现此目标的功能,但在使用时要小心。

似乎我不想使用它的主要功能,但本教程只是用一些关于如何做我想做的事情的提示来取笑我。

尝试自动维护由 WiX 安装安装的文件真的是个坏主意吗?我厌倦了有人提交了新文件但忘记更新 WiX 安装程序以引用该新文件的损坏构建。

其他人如何处理这种情况?

谢谢。

Re:戏弄——本教程指出“Heat 确实具有帮助您实现此目标的功能”,但我找不到所引用的功能。收获一个项目之后——下一步是什么? heat 是否会负责创建我最终将使用的 .wxs 文件 - 还是我应该只使用这个文件列表并在事后构建一个功能更全面的 .wxs 文件?

【问题讨论】:

    标签: visual-studio-2010 wix


    【解决方案1】:

    我在我的 ASP.NET Web 应用程序中使用Heat 来自动收集应用程序的所有文件。

    效果很好。一件事是它每次运行时都会为文件生成一个新 ID,我相信这会使升级时的事情变得更加困难。您可能需要先卸载然后再安装才能获取较新的文件。

    我已经有一段时间没有研究它了,不过这可能已经改变了。

    【讨论】:

    • 我们目前使用的 .wxs 文件中包含的不仅仅是对文件的引用。然而,热量会生成一个 .wxs 文件。我应该使用一个 .wxs 文件并使用它生成另一个 wxs 文件吗?安装结构并不模仿项目中文件的结构——我们为每个文件定义了“源”属性。我知道我可以通过将 cmd 行参数传递给 heat 来自定义一些文件的去向——但这似乎还不够。我有一个热收集项目——但我留下的 .wxs 文件远不及我们当前的 .wxs 功能齐全。
    • stackoverflow.com/a/8598296/351614。 heat 生成的输出将仅用于您需要的文件,您仍然需要其他 wxs 文件来获取有关安装程序的各种元数据。将 heat 的输出视为您的主要 Proudct.wxs 引用的类,并且 heat 文件的内容可以更改。就目录结构而言,如果您有特定要求,您可能必须打开 msbuild/cmd-fu 并以生成所需目录结构的方式编写脚本。
    • 这个codeproject.com/KB/install/asp_wix.aspx 可能会让你更好地了解它是如何工作的,并且所有这些都在一起
    • 那个codeproject示例正是我要找的!太棒了。
    【解决方案2】:

    有一个名为Paraffin 的工具可以修复Heat 的一些缺点。它尤其可以更新文件列表。另请参阅 this Google groups thread 了解有关此问题的讨论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2016-05-04
      相关资源
      最近更新 更多