Wix:添加顺序注册表项

Wix:添加顺序注册表项,wix,registry,installation,wix3,Wix,Registry,Installation,Wix3,我正在使用WIX3编写一个安装程序,它将插件安装到第三方应用程序。应用程序使用一组注册表项来检测已安装的插件。每个插件都需要在HKEY\U LOCAL\U MACHINE\SOFTWARE\Vendor\App\Plugins中添加一个数字名称为0-9的新子键。该键包含一个字符串值,该值是应用程序将实例化的COM组件的ProgId。例如,我需要添加以下密钥来安装我的插件: HKEY_LOCAL_MACHINE\SOFTWARE\Vendor\App\Plugins\0 REG_SZ Pr

我正在使用WIX3编写一个安装程序,它将插件安装到第三方应用程序。应用程序使用一组注册表项来检测已安装的插件。每个插件都需要在
HKEY\U LOCAL\U MACHINE\SOFTWARE\Vendor\App\Plugins
中添加一个数字名称为0-9的新子键。该键包含一个字符串值,该值是应用程序将实例化的COM组件的ProgId。例如,我需要添加以下密钥来安装我的插件:

HKEY_LOCAL_MACHINE\SOFTWARE\Vendor\App\Plugins\0
  REG_SZ   ProgId    "MyCompany.MyPlugin"

但是,如果
0
键已经存在,我的安装程序需要足够智能,以创建
1
键,而不是
0
,并通过键9向下。有没有一种方法可以使用Wix语法来实现这一点?我知道我可以编写一个自定义操作来执行此操作,但如果可能的话,我希望避免它。

您可以使用RegistrySearch来查找第一个空值。但是使用我在中描述的方法会更容易。

谢谢你的回答,它非常圆滑且有用。只有一个问题,在帖子中传递给
WcaAddTempRecord
的最后一个参数是
wzComponent
。这应该是Wix文件中已经存在的组件的ID,还是我应该使用
WcaAddTempRecord
将新组件添加到组件表中,专门用于我的注册表项?再次感谢!它应该是控制是否写入注册表值的现有组件。