3

我正在使用带有新的主要升级功能的 Wix 3.5,我还WixUI_Advanced用于允许用户在每用户(默认)或每机器安装范围之间进行选择。

安装具有相同每用户范围的较新版本时,主要升级适用于每用户安装范围。但是,当旧版本安装为 Per Machine 范围时,使用 Per Machine 范围安装新版本实际上不会将旧版本升级到新版本。相反,我在程序和功能中找到了 2 个已安装的实例。

我从 StackOverflow 中找到了这个问题和答案:Wix Major Upgrade and Install Context Issues。Ciprian 的唯一回答是FindRelatedProducts再次执行行动。

我不知道如何FindRelatedProducts再次执行。有没有人试过这个并看到它有效,如果是,如何?

非常感谢。

4

2 回答 2

3

在用户选择 PerMachine 范围然后单击 InstallScopeDlg 对话框上的 Next 按钮后,我设法通过执行 FindRelatedProducts 操作来解决此问题:

<UI Id="CustomWixUI_Advanced">

...

<Publish Dialog="CustomInstallScopeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="7">WixAppFolder = "WixPerMachineFolder"</Publish>

<-- 当用户选择 PerMachine 安装范围然后单击 InstallScopeDlg 上的 Next 按钮时,我们如何构建 Windows Installer 以执行 FindRelatedProducts 操作 -->

<Publish Dialog="CustomInstallScopeDlg" Control="Next" Order="8" Event="DoAction" Value="FindRelatedProducts">WixAppFolder = "WixPerMachineFolder"</Publish>

</UI Id="CustomWixUI_Advanced">

于 2012-09-17T06:48:57.540 回答
1

您可以在 和 中添加具有所需条件和序列的元素。虽然我没有遇到你的问题,也不能确定这是否会有所帮助......

于 2012-08-28T11:12:25.710 回答