Почему условие запуска моего реестра не работает в моем файле установки Windows?

#installation #windows-installer

#установка #windows-installer

Вопрос:

Я пытаюсь проверить, установлен ли SharePoint 2010, прежде чем разрешить программе установки продолжить. Для того, чтобы это произошло, я добавил следующее свойство «Поиск целевой машины»:

Имя = «Поиск MOSS2010»
Свойство = SHAREPOINT2010 УСТАНОВЛЕНО
RegKey = SOFTWAREMicrosoft Shared ToolsWeb Server Extensions 14.0
Root = vsdrrHKLM
Значение = SharePoint

В моей системе указанный путь существует, а значение «SharePoint» равно «Установлен»

Теперь я добавил условие запуска:
Name = Установленный SharePoint 2010
Condition = SHAREPOINT2010INSTALLED=»Установленный»
InstallUrl = (пустой)
Message = SharePoint 2010 должен быть установлен до установки этого пакета.

Теперь в моей системе с установленным пакетом обновления SP2010 это значение оценивается как false, потому что программа установки выдает указанное выше сообщение со сбоем.

Есть ли способ отладить значение свойств во время установки? Или я делаю что-то глупое?

Спасибо.

Ответ №1:

Похоже, что ваш установщик может быть (например) 32-разрядным установщиком, но разделы реестра могут находиться в 64-разрядном реестре (или наоборот).

Чтобы создать 64-разрядный установщик с помощью Visual Studio, смотрите: http://msdn.microsoft.com/en-us/library/cd7a85k9.aspx

Комментарии:

1. Я думал, что 32/64-разрядное ореольное отображение реестра предназначено для раздела HKCR, а не для всего HKLM.

2. Если Sharepoint выполняет запись в 64-разрядный HKLM, то 32-разрядный процесс вообще не увидит его. Если выполняется запись в 32-разрядный HKLM, то вам нужно заглянуть в раздел Software Wow6432Node, чтобы получить 32-разрядные значения из 64-разрядного процесса.

3. Ну, будь я проклят! В конце концов, это был весь программный куст. Спасибо!