WIX:如何卸载以前使用 VS *.vdproj 构建的 MSI
WIX: How can I uninstall a previous MSI built using a VS *.vdproj
我正在使用 WIX 为现有产品创建新的安装程序。安装程序非常简单 - 只需将几个 dll 放到磁盘上的指定文件夹中。
在现场,我的用户已经拥有包含旧 dll 的文件夹(因为他们安装了旧 MSI - 使用 VS 中的 *.vdproj 项目创建)。
我的问题是,在我安装 WIX 后,旧的 MSI 和新的 Wix MSI 都出现在 Add/Remove 中。预期(?因为这 2 个是两种不同类型的 MSI?)。我需要某种升级机制——所以我想知道我是否可以从 WIX 中调用旧的 MSI 卸载程序。或者以某种方式处理旧的 Add/Remove 条目(也许是注册表黑客攻击?)
假设旧安装和新安装使用相同的上下文(每用户 -> 每用户或每机器 -> 每机器)你可以使用 MajorUpgrade 规则找到旧版本和摆脱它。您可以通过同步 UpgradeCode 属性 并使用更高的 ProductVersion 来执行此操作,或者您可以通过使用旧版 UpgradeCode GUID.
编写第二个升级规则来执行此操作
如果旧安装是针对每个用户的,而您希望新安装是针对每台机器的,那么您就不走运了。 MSI 不支持此功能。通常我只支持每台机器安装和硬编码 ALLUSERS 属性 并从安装程序 UI 体验中删除 CustomerInformation 对话框。这不是基于 VDPROJ 的安装程序的默认体验。
我正在使用 WIX 为现有产品创建新的安装程序。安装程序非常简单 - 只需将几个 dll 放到磁盘上的指定文件夹中。
在现场,我的用户已经拥有包含旧 dll 的文件夹(因为他们安装了旧 MSI - 使用 VS 中的 *.vdproj 项目创建)。
我的问题是,在我安装 WIX 后,旧的 MSI 和新的 Wix MSI 都出现在 Add/Remove 中。预期(?因为这 2 个是两种不同类型的 MSI?)。我需要某种升级机制——所以我想知道我是否可以从 WIX 中调用旧的 MSI 卸载程序。或者以某种方式处理旧的 Add/Remove 条目(也许是注册表黑客攻击?)
假设旧安装和新安装使用相同的上下文(每用户 -> 每用户或每机器 -> 每机器)你可以使用 MajorUpgrade 规则找到旧版本和摆脱它。您可以通过同步 UpgradeCode 属性 并使用更高的 ProductVersion 来执行此操作,或者您可以通过使用旧版 UpgradeCode GUID.
编写第二个升级规则来执行此操作如果旧安装是针对每个用户的,而您希望新安装是针对每台机器的,那么您就不走运了。 MSI 不支持此功能。通常我只支持每台机器安装和硬编码 ALLUSERS 属性 并从安装程序 UI 体验中删除 CustomerInformation 对话框。这不是基于 VDPROJ 的安装程序的默认体验。