2012-02-01 86 views
0

我一直在搜索互聯網上有關此註冊表搜索問題的答案。在Wix中使用註冊表搜索時沒有讀取註冊表

我有一個更大的wix文件,但我不能得到多個功能的工作和功能的條件,所以我創建了一個基本的測試wix文件來理解wix的功能,但不能得到我需要的結果。

的代碼如下:

<Property Id="BASICTEST" Secure="yes" > 
    <RegistrySearch Id="_Regsearch_Basic" Root="HKLM" 
    Key="SOFTWARE\TGSL\BasicInstaller" Name="BASIC1" Type="raw" > 
    </RegistrySearch> 
</Property> 

<Property Id="BASICTEST1" Secure="yes" > 
    <RegistrySearch Id="_Regsearch_Test" Root="HKLM" 
    Key="SOFTWARE\TGSL\BasicInstaller" Name="TEST1" Type="raw" > 
    </RegistrySearch> 
</Property> 


<Feature Id="BasicFeature" Title="BasicFeat" Level="0"> 
    <Condition Level="1">NOT (BASICTEST="0")</Condition> 
    <ComponentRef Id="BasicTest"/> 
    </Feature> 

<Feature Id="TestFeature" Title="TestFeat" Level="0" > 
    <Condition Level="1">NOT (BASICTEST1="0") </Condition> 
    <ComponentRef Id="BasicTest1"/> 
</Feature> 

我已經設置了四個註冊表項,所有的值均爲1(BASIC1 = 1和TEST1 = 1),以測試其註冊表它正在使用(2個在軟件\ TGSL \ BasicInstaller 64位或2在SOFTWARE \ TGSL \ BasicInstaller爲32位)

我知道它默認爲32位,除非另有說明,但仍然沒有。我正在使用進程監視器來測試,看看我的.msi文件是否正在讀取註冊表......它不是。

我安裝的.msi時創建一個日誌文件,我也得到讀取註冊表時,錯誤代碼:

AppSearch:房產:BARRIETEST,簽名:_Regsearch_BarrieTest1

注意事項:1:2262 2:簽名3:-2147287038

注意事項:1:1402 2:HKEY_LOCAL_MACHINE32 \ SOFTWARE \ TGSL \ BasicInstaller 3:2

錯誤代碼沒有找到該文件,但它看起來是在尋找那不存在的目錄什麼時候我將它更改爲win64 =「yes」,它在HKEY_LOCAL_MACHINE之後帶走了32個。

我已經嘗試在wix 2.0中構建這個測試腳本,並且它在註冊表中正確地搜索它,並將屬性更改爲註冊表項「1」的值,所以我處於一個窘境,以至於我做錯了什麼?

wix 2.0和wix 3.5之間的註冊表搜索參數有區別嗎?

任何人都可以提出一個可能的修補程序或如何我可以得到這些功能的工作?

請幫助...謝謝提前

+0

我測試了這個例子在測試服務器和虛擬機上,它工作正常......這是否意味着它可能是我使用的視覺工作室的版本(即時通訊使用vs 2010)? – 2012-02-01 16:15:32

+0

我的主機運行的是Windows 7,如果這也有幫助? – 2012-02-01 16:21:05

+0

嘗試禁用您的防病毒軟件。 – 2012-02-04 02:27:45

回答

3

對於關閉,如問題的評論指出,這是一個權限問題,即在運行安裝程序安裝程序的用戶沒有足夠的權限訪問HKEY_LOCAL_MACHINE。

+0

好吧,提升安裝程序工作管理員似乎並不一個好主意,這個問題沒有解決嗎? http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-BURN-wpf-and-UAC-promt-td7587811.html – 2015-10-24 15:20:03