Настройка развертывания (.Net) - Поиск целевой машины - ›Поиск в реестре (64 бит)

У меня есть проект установщика Windows, который устанавливает некоторое программное обеспечение (winform, service, mce addin). Во время установки мне нужно найти на машине ключ реестра. Это делается с помощью «Условия запуска» -> «Добавить поиск в реестре» (проект развертывания).

Я правильно заполнил все свойства и проверил в реестре, что значение действительно можно найти.

Проблема в том, что «Поиск в реестре» выполняет поиск в части реестра x86 (HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ...), хотя моя система - x64, и установка развертывания также установлена ​​на x64.

Кто-нибудь знает, как заставить "Поиск в реестре" искать в реестре x64? Или знаете об обходном пути?

Странно то, что параметр реестра в настройке развертывания записывает в правильный реестр (x64). Я считаю, что программа «Поиск в реестре» разработана только для архитектуры x86 и поэтому не может читать правильный реестр.

Я нашел эту статью в Microsoft, так что, похоже, они знают об этой проблеме. https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=110105&wa=wsignin1.0#details

Моя система:
Windows 7 64-битная
Visual Studio 2008


person Joonas Kirsebom    schedule 06.02.2010    source источник
comment
У меня точно такая же проблема. Используя Process Monitor, я вижу, что он ищет неправильный ключевой узел реестра, даже если я настроил установщик для архитектуры x64. Было бы очень полезно узнать, на чем основывается это решение.   -  person glenatron    schedule 03.02.2011


Ответы (1)


Я нашел для этого решение. Я модифицировал скрипт, сделанный от Microsoft, и скрипт должен запускаться после каждой сборки. Узнайте, как здесь

person Joonas Kirsebom    schedule 18.04.2010
comment
Ссылка больше не работает - person miguelmpn; 02.03.2021