Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 并行安装中的组件未正确卸载_Wix - Fatal编程技术网

Wix 并行安装中的组件未正确卸载

Wix 并行安装中的组件未正确卸载,wix,Wix,使用Wix 3.11和Visual Studio 2017。我的安装包构建了两次,使用条件标志更改UpgradeCode,以允许两个品牌共存(产品Id自动生成)。因此,我希望能够安装和/或卸载品牌A和品牌B,而不会对这两个品牌中的任何一个造成问题。它们被视为两种不同的装置。尽管如此,我还是希望保持我的Wix代码干净简单 此场景在以下情况下起作用: 安装品牌A 卸载品牌A 此方案不起作用: 安装品牌A 安装品牌B 卸载品牌A。控制面板中的条目“A”已消失,但文件保持不变 我可以看到注册表中的重要值

使用
Wix 3.11
Visual Studio 2017
。我的安装包构建了两次,使用条件标志更改
UpgradeCode
,以允许两个品牌共存(产品Id自动生成)。因此,我希望能够安装和/或卸载
品牌A
品牌B
,而不会对这两个品牌中的任何一个造成问题。它们被视为两种不同的装置。尽管如此,我还是希望保持我的Wix代码干净简单

此场景在以下情况下起作用:

  • 安装品牌A
  • 卸载品牌A
  • 此方案不起作用:

  • 安装品牌A
  • 安装品牌B
  • 卸载品牌A。控制面板中的条目“A”已消失,但文件保持不变
  • 我可以看到注册表中的重要值仍然存在

    <DirectoryRef Id="INSTALLLOCATION">
      <Component Id="MyExecutables" Guid="12345678-ABCD-1234-5678-111122223333" Win64="$(var.Win64)">
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\$(var.Brand)\Uninstall" Name="InstalledSoftware" Value="1" Type="integer" KeyPath="yes" />
      </Component>
    </DirectoryRef>
    
    
    
    正如您所看到的,不同品牌的
    是不同的,但是
    Guid
    是相同的!我相信这与此有关。也许我需要不同品牌的不同guid


    Q:解决此问题的最佳方法是什么?

    Wix要求每个组件都有自己的唯一GUID,即使有多个组件执行完全相同的操作。因此,请确保您的组件不共享相同的GUID。您可以轻松获取GUID