Реестр не читается при использовании Registrysearch в 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 в SOFTWARE \ TGSL \ BasicInstaller для 64-битной версии, либо 2 в SOFTWARE \ TGSL \ BasicInstaller для 32-битной версии)

Я знаю, что по умолчанию используется 32-битная версия, если не указано иное, но все равно ничего. Я использовал монитор процесса, чтобы проверить, читал ли мой файл .msi реестр ... а это не так.

Я создал файл журнала при установке .msi и получаю код ошибки при чтении реестра:

Поиск приложений: Свойство: 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?

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

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


person Barrie Hebberd    schedule 01.02.2012    source источник
comment
Я протестировал этот пример на тестовом сервере и виртуальной машине, и он отлично работает ... означает ли это, что это может быть версия Visual Studio, которую я использую (я использую vs 2010)?   -  person Barrie Hebberd    schedule 01.02.2012
comment
Моя основная машина работает под управлением Windows 7, если это тоже помогает ??   -  person Barrie Hebberd    schedule 01.02.2012
comment
Попробуйте отключить антивирус.   -  person Rami A.    schedule 04.02.2012
comment
Это также может быть отсутствие разрешений на чтение этих разделов реестра. Вы используете установщик с повышенными правами администратора?   -  person Rami A.    schedule 04.02.2012
comment
да, визуальная студия уже работает от имени администратора, я попробую выключить антивирус, чтобы посмотреть, поможет ли это :)   -  person Barrie Hebberd    schedule 06.02.2012
comment
Да, это были мои разрешения, спасибо Рами :)   -  person Barrie Hebberd    schedule 06.02.2012


Ответы (1)


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

person Rami A.    schedule 07.02.2012
comment
Что ж, повышение уровня установщика для работы от имени администратора не кажется хорошей идеей, разве нет решения этой проблемы? windows-installer-xml-wix-toolset.687559.n2.nabble.com/ - person Hossein Shahdoost; 24.10.2015