пакет двойного назначения и MajorUpgrade

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

по умолчанию моя собственность ALLUSERS=2 и MSIINSTALLPERUSER=1

в диалоговом окне readyToInstall, если установлен флажок «установить для всех пользователей», я использую SetProperty для установки ALLUSERS=1 и MSIINSTALLPERUSER={} (просто для уверенности).

эта часть работает нормально, реестр установлен в HKLM, а файлы в Program Files.

однако во время обновления ... У меня есть пользовательское действие, которое проверяет после AppSearch, если ключи находятся в HKLM, он устанавливает ALLUSERS=1 и MSIINSTALLPERUSER={}.

если я делаю незначительное обновление, файлы обновляются правильно.

если я делаю серьезное обновление, реестры все еще находятся в HKLM, но файлы переключаются на LocalAppData (фактически это соответствует значению по умолчанию), игнорируя тот факт, что я принудительно устанавливаю ALLUSERS в 1 после AppSearch. (Я даже пытаюсь принудительно включить его после состояния функции миграции, чтобы имитировать пользовательский интерфейс, но это тоже не сработало).

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


person Tiny sam    schedule 03.11.2016    source источник


Ответы (1)


Основываясь на следующем отрывке, кажется, что вы столкнулись со сценарием B:

Основные обновления могут завершиться ошибкой
Если вы используете функцию кода обновления установщика Windows для выполнения крупного обновления, обнаружение существующего программного обеспечения не будет выполнено, если: (а) исходное программное обеспечение было установлено с ALLUSERS=”” и новое программное обеспечение имеет ALLUSERS=1 в своей таблице свойств или передано в командной строке, или (b) исходное программное обеспечение было установлено с ALLUSERS=1, а новое программное обеспечение имеет ALLUSERS=”” или ALLUSERS не определено в таблице свойств или в командной строке.

Для получения дополнительной информации: https://shieldmaster.wordpress.com/2012/05/03/understanding-per-user-or-per-machine-context-for-application-setup-packages/

person Daniel Lessard    schedule 30.11.2016