加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读