【问题标题】:How to apply a Msi transform at uninstall?如何在卸载时应用 Msi 转换?
【发布时间】:2009-09-30 11:03:51
【问题描述】:

我正在尝试修复已发布的基于 Windows Installer 的设置。该修复是针对卸载软件包时发生的错误。为此,我想提供一个在卸载之前应用的 .mst 转换文件。安装产品后是否可以使用转换?或者可以在开始卸载之前将转换应用于已安装的 .msi 文件吗?我使用的命令行是这样的:

msiexec.exe /x {Product-Code} TRANSFORMS={Path-To}\bugfix.mst

【问题讨论】:

    标签: windows-installer transform


    【解决方案1】:

    转换仅在首次安装时应用,或作为补丁的一部分在内部应用。要解决此类问题,您应该考虑应用次要升级(尽管如果大小是一个主要问题,您应该能够将次要升级打包为补丁)。确保将v 作为REINSTALLMODE 属性的一部分传递,以便新包替换旧包;通常vomus 对该属性来说是一个很好的价值。

    【讨论】:

    【解决方案2】:

    您可以通过为您的应用编辑 HKEY_CLASSES_ROOT\Installer\Products 条目来应用转换。

    找到您的产品,添加一个名为 TRANSFORMS 的值并将其指向您的新转换。然后,当卸载开始时,它将使用该转换。

    【讨论】:

    • 天才。这也适用于 HKEY_CURRENT_USER 中的人,也适用于好奇的人。
    【解决方案3】:

    好的。我知道这是一个旧帖子。但除了上述内容之外,还有一些内容。

    Vividos 有点幸运,可以使用 REINSTALLMODE=VOMUS 将错误修复应用于 MSI,其中现有缓存 MSI 使用新安装程序“重新缓存”。

    但如果错误出现在 MSI 安装期间应用的转换中,则“v”会失败。 'v' 重新缓存 MSI,但不重新缓存应用到它的转换。

    在这种情况下,用户必须手动从“C:\windows\installer[ProductCodeOfTheMsi]”重新缓存 MST(使用 VBScript 或其他)。您将在此处找到旧 MST,并且您的 BUFIX.MST 应与上述位置中的旧 MST 同名并替换它。

    如果您想像 Brian 所说的那样通过注册表路由;将 MST 名称更改为您的新 MST 名称及其位置。

    【讨论】:

      猜你喜欢
      • 2014-02-20
      • 2021-09-23
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多