Bra*_*ess 4 directory registry wix
在我的 wix 源代码中,我必须在注册表中查找 2 个条目才能获取安装目录:
<Property Id="INSTALLDIR_A">
<RegistrySearch Id='RegA' Type='raw'
Root='HKLM' Key='Software\Path\To\A' Name='InstallLocation' />
Run Code Online (Sandbox Code Playgroud)
<Property Id="INSTALLDIR_B">
<RegistrySearch Id='RegB' Type='raw'
Root='HKLM' Key='Software\Path\To\B' Name='InstallLocation' />
Run Code Online (Sandbox Code Playgroud)
我的安装目录必须是 INSTALLDIR_A 或 INSTALLDIR_B。如果我只需要查看 1 个条目,我会这样实现:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR" Name="My path">
<!-- further code -->
</Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)
但我希望 INSTALLDIR 为 INSTALLDIR_A 或 INSTALLDIR_B,具体取决于定义的是哪一个。如何实现这一目标?
小智 5
有一个自定义操作 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>
Run Code Online (Sandbox Code Playgroud)