我有来自同一个wix源的产品构建的x86和x64安装程序。我现在正在看的是处理客户已安装x86软件并尝试使用x64媒体进行重大升级的情况,反之亦然。我不想允许其中任何一种发生。
我最初想象的是寻找我们设置的HKLM / SOFTWARE注册表项的存在,但这不适用于安装的x64和x86升级 - 后者将无法从WOW64中看到它注册表中。
<小时/> 我目前的想法是为x86和x64使用两个不同的UpgradeCodes,并添加一些&lt; Upgrade&gt;如果安装了另一个,则让它中止。这是关于它的最佳方式,还是有更好的方法?
答案 0 :(得分:1)
如果您要分成两个不兼容的产品系列,那么两个UpgradeCodes是正确的,因为您希望它们互相排斥。在这种情况下,你可以使用升级搜索来检测不兼容的x86,除了FindRelatedProducts在选择ALLUSERS之后在安装中运行得相当晚,可能会显示一些对话框,并且具有(挑剔)问题,你不能这样做每个用户和每台机器交叉检测。所以我不喜欢那个解决方案。
我在x86产品中找到x86组件,并使用AppSearch搜索该组件guid。这种情况发生得非常早,很可能会在启动条件下使用,因为AppSearch在LaunchConditions之前。然后用户根本没有看到任何内容,除了一条消息说他们无法安装此内容,因为安装了其他产品。或者可能是一个注册表项或可以用作启动条件的东西,以防止在启动条件下安装。