WiX – 卸载msi时如何卸载软件包
发布时间:2020-12-13 22:40:10 所属栏目:Windows 来源:网络整理
导读:我使用WiX安装我的.msi,我正在使用Bundle Element生成一个WiX Bundle. 我尝试不在“添加/删除程序”上显示Bundle,所以我设置了Bundle元素的属性,如下所示: Bundle Name="$(var.ProductName)" Version="!(bind.packageVersion.MSIPackage)" Manufacturer="$(
我使用WiX安装我的.msi,我正在使用Bundle Element生成一个WiX Bundle.
我尝试不在“添加/删除程序”上显示Bundle,所以我设置了Bundle元素的属性,如下所示: <Bundle Name="$(var.ProductName)" Version="!(bind.packageVersion.MSIPackage)" Manufacturer="$(var.ProductManufacturer)" UpgradeCode="$(var.UpgradeCode)" DisableRemove="yes" DisableModify="yes" DisableRepair="yes"> DisableRemove,DisableModify和DisableRepair为“yes”使Bundle隐藏在“添加/删除程序”下. 我的问题是,当我卸载我的应用程序时,应用程序被正确卸载但Bundle仍然是隐藏的,所以当我尝试安装其他版本的应用程序时会导致一些问题,例如新的Bundle检测到安装了其他Bundle并且执行一些版本控制检查等. 所以我的问题是:当从“添加/删除程序”卸载应用程序时,是否可以卸载Hidden Bundle? 解决方法
要扩展Tom的答案,如果从Bundle标记中删除Disables
<Bundle Name="$(var.ProductName)" Version="!(bind.packageVersion.MSIPackage)" Manufacturer="$(var.ProductManufacturer)" UpgradeCode="$(var.UpgradeCode)"> 您可以修改MsiPackage标记以隐藏添加/删除程序中的MSI <MsiPackage Id="YOUR-ID" Vital="yes" DisplayName="$(var.ProductName)" SourceFile="$(var.Source.TargetPath)"> <MsiProperty Name="ARPSYSTEMCOMPONENT" Value="1"/> </MsiPackage> 这将在“添加/删除程序”中只留下一个条目.您的Bundle现在将处理安装和卸载的UI,并将正确地允许安装其他版本的bundle. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |