Настройка развертывания (.Net) - Поиск целевой машины -> Поиск в реестре (64 бита) - PullRequest
4 голосов
/ 07 февраля 2010

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

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

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

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

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

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

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

1 Ответ

3 голосов
/ 18 апреля 2010

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

...