Wix - 如何有条件地设置属性

Wym*_*ick 3 wix

我想做的是:

if registrySearch exist then
  set INSTALL_DIR to C:\Program Files\MyCompany\MySoftware
else
  set INSTALL_DIR to C:\ProgramData\MyCompany\Folder
Run Code Online (Sandbox Code Playgroud)

有人知道这样做吗?

Leo*_*eoN 7

让我们说一下您搜索的注册表项.

<Property Id="REGSEARCH">
    <RegistrySearch Id="TestReg"
                    Root="HKLM"
                    Key="Software\TestKey\TestKey2"
             Name="Test"
                    Type="raw" />
</Property>
Run Code Online (Sandbox Code Playgroud)

这是有条件地设置属性的方法.

将默认值保留为注册表不存在时需要放置的值.

<Property Id="INSTALL_DIR" Value="C:\ProgramData\MyCompany\Folder" />
Run Code Online (Sandbox Code Playgroud)

如果注册表存在,则按如下所示设置属性值.

<SetProperty Id="INSTALL_DIR" After="AppSearch" Value="C:\Program Files\MyCompany\MySoftware" Sequence="first" >
  <![CDATA[REGSEARCH]]>
</SetProperty>
Run Code Online (Sandbox Code Playgroud)