gpt4 book ai didi

wix - WiX提示卸载旧版本APP

转载 作者:行者123 更新时间:2023-12-04 02:49:59 26 4
gpt4 key购买 nike

我使用 Wix 3.6 开发了一个安装程序,可以成功安装应用程序的所有元素。

现在,每次我提供更高版本的 msi 时,我都希望安装程序提示用户卸载它。从现在开始我试过这个:

<Product 
Id="*"
Name="!(loc.ProductName)"
Language="3082"
Codepage="1252"
Version="1.0.1"
Manufacturer="$(var.ProductManufacturer)"
UpgradeCode="$(var.UpgradeCode)">

<Property Id="PREVIOUSVERSIONINSTALLED" Secure="yes" />
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="1.0.0.0" Maximum="99.9.9.9" IncludeMiminum="yes" IncludeMaximum="no" Property="PREVIOUSVERSIONSINSTALLED" />
</Upgrade>

<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>

此代码成功卸载了我计算机上任何以前安装的版本。但是它不会询问用户是否确定要这样做。

我需要的是 Wix 安装程序来提示用户说出如下消息:

A previous version of your [ProductName] is installed. Do you want to uninstall it? [ Yes | No ] option.

有没有办法提示用户并检查他是否真的要卸载任何以前的版本?

最佳答案

Windows Installer 升级表有一个名为 msidbUpgradeAttributesOnlyDetect 的属性位,由 WiX 的 UpgradeVersion@OnlyDetect 属性表示。

如果编写得当,这会导致 FindRelatedProducts 使用检测到的产品的 ProductCode GUID 设置您选择的操作属性。不过,它不会将此传递给 RemoveExistingProducts 以进行自动删除。

虽然这不是典型的行为,但没有什么可以阻止您编写一些在此属性具有值时触发的 UI。您可以询问用户是否要删除旧版本,如果是,则设置另一个操作属性以告知 RemoveExistingProducts。 (提示:编写一个永远不会自己找到产品的升级并劫持它的属性来注入(inject)删除。)

如果用户拒绝,您可以选择中止安装或继续并排安装到不同的目录结构。 (Office、Visual Studio 等)。

关于wix - WiX提示卸载旧版本APP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com