Wix - 根据条件安装目录

3
在我的wix源代码中,我需要查找注册表中的2个条目以获取安装目录:
<Property Id="INSTALLDIR_A"> 
 <RegistrySearch Id='RegA' Type='raw' 
   Root='HKLM' Key='Software\Path\To\A' Name='InstallLocation' /> 

 <Property Id="INSTALLDIR_B"> 
 <RegistrySearch Id='RegB' Type='raw' 
   Root='HKLM' Key='Software\Path\To\B' Name='InstallLocation' /> 

我的安装目录必须是INSTALLDIR_A或INSTALLDIR_B。如果我只能看一个条目,我会这样实现:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="INSTALLDIR" Name="My path">
    <!-- further code -->
  </Directory>
</Directory>

但是我希望INSTALLDIR根据定义的情况为INSTALLDIR_A或INSTALLDIR_B。如何实现?

2
可能是重复的问题:WIX:根据条件设置属性 - Erti-Chris Eelmaa
1个回答

4

有一个自定义操作SetDirectory (http://wixtoolset.org/documentation/manual/v3/xsd/wix/setdirectory.html)可以解决这个问题。您可以尝试将第一个值用作默认值,并在设置其他值时覆盖它:

<Fragment>
  <Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
      <Directory Id="INSTALLFOLDER" Name="Software\Path\To\A" />
    </Directory>
  </Directory>

  <SetDirectory Id="INSTALLFOLDER" Value="[INSTALLDIR_B]">INSTALLDIR_B AND NOT INSTALLDIR_A</SetDirectory>
</Fragment>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接