Установщик Windows: как скрыть окно незавершенной установки, если условие поиска не выполняется

VS2010, проект установки. Я добавляю свойство Search64bitOffice в Search Target Machine,

Имя Search64bitOffice Свойство: OFFICEIS64BIT RegKey: Software \ Microsoft \ Office \ 14.0 \ Outlook \ Bitness Root vsdrrHKLM Значение: x64

Затем я добавляю условие запуска Search64bitOffice Condition: OFFICEIS64BIT Сообщение: этот установщик работает только для 64-битного Office.

Когда я пытаюсь установить программу на Win 7, 64-разрядную версию + Office, 32-разрядную версию, выскакивает окно с надписью «Этот установщик работает только для 64-разрядной версии Office», чего и следовало ожидать. Я нажимаю ОК, чтобы закрыть окно, затем появляется другое окно с сообщением «Установка не завершена». Программа установки была прервана до того, как * могла быть установлена. Вам необходимо перезапустить установщик, чтобы повторить попытку. Нажмите "Закрыть", чтобы выйти.

Я не хочу, чтобы отображалось второе окно. Как удалить его из установщика? Благодарность

другой вопрос: как использовать обратное условие, скажем, когда условие ложно, я хочу, чтобы установщик продолжил? Пробовал ~ OFFICEIS64BIT, не работают


person toosensitive    schedule 21.09.2011    source источник


Ответы (2)


Я не хочу, чтобы отображалось второе окно. Как удалить его из установщика?

Вы не можете его удалить. Это диалоговое окно выхода пользователя, которое отображается, когда установка отменяется пользователем или при выполнении условия запуска.

Максимум, что вы можете сделать, это изменить его, но это не поддерживается Visual Studio.

как использовать обратное условие, скажем, когда условие ложно, я хочу, чтобы установщик продолжил работу?

Используйте НЕ, чтобы отрицать условие:

NOT OFFICEIS64BIT
person cosmin    schedule 22.09.2011
comment
Извините, имел ввиду добавление комментария, но случайно добавил ответ. НЕ ОФИСНЫЙ IS64BIT не работает. Я попробовал установить свой установщик на ПК с 64-разрядной версией Excel, он должен остановиться, но этого не произошло. Он ведет себя точно так же, когда я устанавливаю его на ПК с 32-битным Excel. - person toosensitive; 22.09.2011
comment
Попробуйте создать подробный журнал, чтобы узнать, какое значение имеет OFFICEIS64BIT: setupanddeployment.com/debugging/msi-log. Если он устанавливается, то нужно выяснить, почему. - person cosmin; 22.09.2011
comment
Еще раз спасибо, Космин. из-за ограничений на комментарии я помещаю файл журнала в свой ответ. Похоже, что OFFICEIS64BIT вернул истину. но НЕ игнорируется в условии. Благодарность - person toosensitive; 23.09.2011
comment
Свойство не устанавливается действием AppSearch, потому что запись в реестре не найдена. Так что условие запуска работает правильно. При поиске в реестре Visual Studio используется только 32-разрядный куст реестра. У них нет поддержки флага msidbLocatorType64bit, который заставляет их искать в 64-битном улье. Так что, скорее всего, Office x64 не использует 32-разрядную запись реестра с указанным вами путем. Решением было бы добавить флаг вручную, отредактировав MSI с помощью Orca. Другое решение - использовать другой инструмент для создания настроек, который предлагает дополнительную поддержку для этого. - person cosmin; 23.09.2011
comment
Не уверен, почему это HKEY_LOCAL_MACHINE32 \ Software \ Microsoft \ Office \ 14.0 \ Outlook \ Bitness, я думаю, это должен быть HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ 14.0 \ Outlook \ Bitness, откуда взялся HKEY_LOCAL_MACHINE32? - person toosensitive; 23.09.2011
comment
Спасибо, Космин. Какое значение мне нужно изменить в msi с помощью Orca, чтобы он заработал? - person toosensitive; 23.09.2011
comment
Введите столбец в таблице RegLocator: msdn .microsoft.com / en-us / library / windows / desktop / - person cosmin; 23.09.2011
comment
благодаря. Только что попробовал установить Тип на 18 в RegLocator. на этот раз я получил MSI (c) (B4: C0) [16: 24: 02: 860]: Примечание: 1: 1402 2: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ 14.0 \ Outlook \ Bitness 3: 2 MSI (c) (B4: C0) [16: 24: 02: 860]: Примечание: 1: 2262 2: IniLocator 3: -2147287038 MSI (c) (B4: C0) [16: 24: 02: 860]: Примечание: 1: 2262 2: DrLocator 3: -2147287038, похоже, условие не соблюдается, но я проверяю в реестре, он имеет разрядность x64. Sth все еще отсутствует? Благодарность - person toosensitive; 23.09.2011
comment
Похоже, условие не задано. но в зависимости от того, что я вижу в реестре, он должен быть установлен. - person toosensitive; 23.09.2011

Используйте это в условиях запуска

! (OFFICEIS64BIT)

У меня была аналогичная проблема, и это сработало.

person Devaraj Totagara    schedule 09.09.2015