【问题标题】:heat.exe autogenerating file fragments - every build?heat.exe 自动生成文件片段 - 每次构建?
【发布时间】:2011-09-03 07:45:46
【问题描述】:

我正在使用 heat.exe 来生成 WiX 文件片段。

我通过在 Visual Studio 中向我的网站项目添加后期构建步骤来完成此操作,这样每次构建完成时,都会拾取 Web 项目中的任何新文件并创建新的 wxs 文件片段。这些文件片段直接复制到 wix setup 项目中,这样在 setup 项目构建时,会将所有新添加的内容文件包含到 msi 中。

我上次注意到,每次 heat.exe 重新生成 wxs 文件片段时,它都会创建新的 guid(但显然不是新的组件 ID)。

无论如何,我对 WiX/heat 很陌生,所以问题是 - 我是否应该每次都自动生成 wxs 文件,例如当新版本的网站发布和安装/卸载时,这将如何影响生产中的事情?为什么我不应该在每个构建中自动生成和包含这些文件片段?

【问题讨论】:

    标签: wix heat


    【解决方案1】:

    关于这种情况有两种主要思路;你跟随哪一个取决于哪种风险更让你害怕。您是否更担心由于没有人告诉您并且您没有更新一次性生成,您可能不会包含将来变得必要的一些更改,或者您是否更担心使用自动生成结果创建的两个 .msi 文件不会升级好不让你知道重要文件丢失了吗?

    就我个人而言,我倾向于相信自动生成会导致更难解决的问题,因此我建议仅在您知道某些事情发生变化时才生成这些,然后验证差异是否符合您的预期。

    【讨论】:

    • 这与我的想法一致。但我真的可以在自动生成产生的确切问题上使用更具体的细节。到目前为止,我刚刚看到一些人评论说它会影响升级之类的事情,但没有人确切地说出技术问题是什么——与指南有关吗?另外,如果你完全卸载旧的 msi,然后安装新的,那么你就没有升级问题?
    • 如果您卸载并重新安装新的,您可以避免很多错误,尤其是如果您的组件都没有共享​​>。一般来说,您必须担心组件规则msdn.microsoft.com/en-us/library/aa372795(v=vs.85).aspx - 通常您看到的情况是当文件更改时整个组件被添加或消失,或者组件内的注册表信息发生更改。两者都可能在次要升级后造成毁灭性的影响(卸载时遗留的文件或密钥,或未安装的较新版本)。搜索组件规则次要升级了解更多信息。
    猜你喜欢
    • 2017-11-07
    • 2022-09-29
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多