2009-12-31 83 views
2

我正在编写一个使用Wix 3的安装程序,它将插件安装到第三方应用程序。该应用程序使用一组注册表项来检测已安装的插件。每个插件都需要添加一个数字名称从0-9到HKEY_LOCAL_MACHINE\SOFTWARE\Vendor\App\Plugins的新子项。该键包含一个单独的字符串值,它是应用程序将实例化的COM组件的ProgId。因此,举例来说,我需要添加以下键安装我的插件:Wix:添加顺序注册表项

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

但是,如果0键已经存在,我的安装程序需要足够的智慧创造的关键1代替0和上下贯通关键字9.有没有一种方法可以使用Wix语法来实现这一点?我知道我可以写一个自定义操作来做到这一点,但如果可能的话,我想避免它。

回答

2

您可以使用RegistrySearch查找第一个空值。但使用我在http://www.joyofsetup.com/2007/07/01/semi-custom-actions/中描述的方法会更容易。

+0

谢谢你的回答,非常光滑,乐于助人。只有一个问题,在传递给'WcaAddTempRecord'的最后一个参数是'wzComponent'。这应该是我的Wix文件中已经存在的组件的ID,还是应该使用'WcaAddTempRecord'向组件表中添加专门用于我的注册表项的新组件?再次感谢! – heavyd 2010-01-11 16:47:14

+0

它应该是一个控制是否写入注册表值的现有组件。 – 2010-01-13 00:22:40