Выполнение поиска в реестре для программы установки Windows .NET - PullRequest
1 голос
/ 06 мая 2019

У меня есть установщик приложения .NET winform. Перед установкой я выполняю поиск в реестре, чтобы проверить, установлено ли на компьютере приложение MS Access Runtime.

Поиск целевой машины

Свойства поисковой целевой машины

Условия запуска

Свойства условий запуска

Однако я хочу избежать жесткого кодирования пути типа "C:\Program Files\Microsoft Office\Office15\" в свойствах условия запуска. Пока я пробовал "[ProgramFilesFolder]\Microsoft Office\Office15\", "%ProgramFiles%\Microsoft Office\Office15\", но оба варианта не работают.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Итак, вот как я наконец-то заставил это работать и успешно протестировать как на 32-битных, так и на 64-битных Windows-машинах.

Мое приложение зависит от двух предпосылок. 1. Crystal Report Runtime. 2. Microsoft Access Runtime.

Так создан реестр поиска для обеих сред выполнения.

enter image description here enter image description here enter image description here

И свойства для каждого созданного поиска.

enter image description here

enter image description here

enter image description here

enter image description here

Условие запуска для каждой среды выполнения.

enter image description here

enter image description here

enter image description here

Если вы наблюдаете между двумя условиями для каждой среды выполнения, вы обнаружите разницу в способе установки условия.

Для Microsoft Access Runtime я только что упомянул имя свойства, которое было установлено для поиска в реестре. В то время как для Crystal Report Runtime я указал значение, представляющее собой конкретную версию среды выполнения, которая должна присутствовать. В моем случае я специально искал версию «13.0.4», чтобы присутствовать на машине.

0 голосов
/ 08 мая 2019

Правильный поиск в реестре : Попробуйте найти правильный 32-bit section реестра: SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\MSACCESS.EXE

Решающим является включение Wow6432Node по направлению к началу строки.


Настраиваемое действие : Это не общепринятая практика, но мне нравится использовать настраиваемые действия для проверки системы ( Мне не нравятся их для обновления системы ). Настраиваемые действия проверки доступны только для чтения, не требуют отката, не опасны для системы и позволяют относительно безопасно подавлять ошибки.

Причина, по которой мне нравятся пользовательские действия по проверке, заключается в том, что вы обладаете полной гибкостью, если требования к проверке системы усложняются. Я считаю, что AppSearch иногда сбивает с толку. Пользовательские действия нелегко использовать с проектами установщика Visual Studio .


Битность : я не использую Поиск приложений много, но это actual 32-bit machine (довольно старинно, что) или 64-bit machine with 32-bit components? В случае последнего, вот напоминание о основных битовых путях в реестре и на диске:

Registry

  • 64-бит : HKEY_LOCAL_MACHINE\SOFTWARE
  • 32-бит : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

Диск

  • 64-бит : C:\Program Files\
  • 32-бит : C:\Program Files (x86)\
  • 64-бит : C:\Windows\System32\ - (да, действительно)
  • 32-бит : C:\Windows\SysWOW64\ - (да, действительно)

Ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...