Как использовать параметр условия запуска в установочном пакете с использованием C # - PullRequest
0 голосов
/ 19 января 2009

Я хочу, чтобы мое приложение проверило (перед началом установки) наличие Nokia_PC_Suite_rel_7_0_8_2 мои шаги:

1) Я добавил Поиск по реестру, и его свойства

Property = PCSUITERUNTIMEEXISTS, RegKey = HKEY_LOCAL_MACHINE\SOFTWARE\PCSuite\Product, Root= vsdrrHKLM, Value = Nokia Pc Suite

ПРИМЕЧАНИЕ: я получил значение свойства Value из редактора реестра, когда я дважды щелкнул по PCSiute, затем я нашел Product, когда щелкнул по нему, я обнаружил диалог с 2 текстами:

  1. Имя значения
  2. Значение данных

2) Я добавил новое условие запуска, которое называется «PCSuite Runtime установлен, если пользователь не запрашивает» и его свойства:

    condition = PCSUITERUNTIMEEXISTS //(it's a drop down list so I selected the condition I created in "Registry Search"), 
Messege = [ProductName] requires Nokia_PC_Suite_rel_7_0_8_2  runtime. 
Please run setup.exe to install the prerequisites for this application.

Теперь в setup.exe я добавил Nokia_PC_Suite_rel_7_0_8_2.exe в качестве предварительного условия, поэтому, когда пользователь дважды щелкнет на setup.exe, он попросит его установить Nokia_PC_Suite_rel_7_0_8_2, если он отменит всю установку, остановится.

Что действительно происходит, так это то, что когда я нажимаю на MSI-файл, всегда отображается сообщение («[ProductName] требует выполнения Nokia_PC_Suite_rel_7_0_8_2. Пожалуйста, запустите setup.exe для установки необходимых компонентов для этого приложения».), Хотя установлена ​​версия PCSuite на моем ПК.

Так что же делать? Я хочу, чтобы он продолжил установку, если он обнаружит PCSuite, если не отобразит сообщение, поэтому пользователь перейдет к setup.exe. Также, когда я удалил PCSuite и нажал на onsetup.exe, он начал устанавливать PCSuite, а когда он закончил, он отобразил предыдущее сообщение и вышел из программы установки.

1 Ответ

0 голосов
/ 24 августа 2010

Быстрый тест показал, что вам нужно пропустить HKEY_LOCAL_MACHINE \ из RegKey. Таким образом, ваш ключ реестра поиска будет выглядеть так:

Property: PCSUITERUNTIMEEXISTS
RegKey: SOFTWARE\PCSuite\Product
Root: vsdrrHKLM
Value:  Nokia Pc Suite

Nokia Pc Suite должно быть значением (а не ключом), в котором есть данные. В моем тестировании я заметил, что в разделе реестра есть значение, в котором нет данных, проверка все равно не пройдёт.

Если вы просто пытаетесь проверить наличие KEY , оставьте значение пустым.

...