如何在卸载时应用Msi转换?

时间:2009-09-30 11:03:52

标签: windows-installer transform

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

您可以通过编辑应用的HKEY_CLASSES_ROOT \ Installer \ Products条目,在事后应用转换。

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

答案 2 :(得分:0)

好。我知道这是一个老帖子。但除此之外,还有其他内容。

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

但是如果在MSI安装期间应用了转换中的错误,则'v'会失败。 'v'记录MSI,但不记录应用于它的变换。

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

如果你想像Brian提到的那样浏览注册表路线;将MST名称更改为新的MST名称及其位置。