Реестр не читается при использовании RegistrySearch в Wix - PullRequest
0 голосов
/ 01 февраля 2012

Я искал в Интернете ответ на эту проблему поиска в реестре.

У меня есть файл 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 в ПРОГРАММНОМ ОБЕСПЕЧЕНИИ \ 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", он убирает 32 после HKEY_LOCAL_MACHINE.

Я попытался создать этот тестовый сценарий в wix 2.0, и он отлично выполняет поиск в реестре и изменяет свойство на значение ключа реестра "1", поэтому я нахожусь в затруднительном положении относительно того, что я делаю неправильно??

Есть ли разница между параметрами поиска в реестре между wix 2.0 и wix 3.5?

Кто-нибудь может предложить возможное исправление или как я могу заставить эти функции работать?

Пожалуйста, помогите ... заранее спасибо

1 Ответ

3 голосов
/ 07 февраля 2012

Для закрытия, как указано в комментариях к вопросу, это была проблема с разрешениями, когда у пользователя, запускающего программу установки, не было достаточно прав для доступа к HKEY_LOCAL_MACHINE.

...