1

我有一个注册表值,其中包含要使用的配置的当前版本

HKLM\SOFTWARE\companyname\productname\CurrentVersion = 13.5

我可以成功地搜索它并使用它来获取它的值

<Property Id="CURRENTVERSION">
  <RegistrySearch Id="CurrentVersionID" Root="HKLM" Type="raw"
                  Key="SOFTWARE\companyname\productname\CurrentVersion"></RegistrySearch>
</Property>

但现在我需要根据这个 CURRENTVERSION 值搜索另一个注册表值,位于

SOFTWARE\companyname\productname\CURRENTVERSION\ConfigPath

<Property Id="CONFIGPATH">
  <RegistrySearch Id="ConfigPathId" Root="HKLM" Type="raw"
                  Key="SOFTWARE\companyname\productname\CURRENTVERSION\ConfigPath"></RegistrySearch>
</Property>

有人可以为我提供一种方法来做到这一点,最好是一个例子。

4

1 回答 1

3

您应该尝试在 [] 内的第二个注册表搜索中包含 CURRENTVERSION,如下所示:

<Property Id="CONFIGPATH">
    <RegistrySearch Id="ConfigPathId" Root="HKLM" Type="raw"
              Key="SOFTWARE\companyname\productname\[CURRENTVERSION]\ConfigPath">
    </RegistrySearch>
</Property>

我尚未对其进行测试,但这就是您通常在 WiX 中访问属性值的方式。

Alternatively, you can define variables in the RegistrySearch element in the Utils extension. These variables can then be used in other registry searches. Check out the following link for an example: http://wix.sourceforge.net/manual-wix3/bundle_define_searches.htm

于 2012-05-10T10:37:08.450 回答