2009-12-31 81 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