Metrolog / ITG.MetrControl.2.4

.msi пакет для распространения в рамках домена продукта АИС Метроконтроль версии 2.4
0 stars 1 forks source link

Рассмотреть возможность установки per user и per machine #10

Closed sergey-s-betke closed 7 years ago

sergey-s-betke commented 7 years ago

https://msdn.microsoft.com/en-us/library/windows/desktop/dd408068(v=vs.85).aspx

sergey-s-betke commented 7 years ago

Для этих целей требуется, как минимум, MSI 5.0. Ну почему бы и нет. Поддерживается с Windows 7 и старше.

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

https://blogs.msdn.microsoft.com/windows_installer_team/2009/09/02/authoring-a-single-package-for-per-user-or-per-machine-installation-context-in-windows-7/

sergey-s-betke commented 7 years ago

https://msdn.microsoft.com/en-us/library/windows/desktop/dd408007(v=vs.85).aspx

sergey-s-betke commented 7 years ago

Сейчас вижу минимум две проблемы с директориями:

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

Для этих целей придётся использовать WixUI_Advanced, возможно - с переработкой (потому как указанный интерфейс подразумевает лицензию, которой во многих продуктах на первых сборках может не быть).

sergey-s-betke commented 7 years ago

Ещё одна проблема - UninstallOriginalPackage. Данная операция требует повышенных прав. Эти действия стоит выполнять только при установке на машину, а не на пользователя.

sergey-s-betke commented 7 years ago

MsiRunningElevated

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

Однако, осталась проблема при выборе из интерфейса варианта установки на пользователя - требует UAC, и ставит, в итоге, под администратора. Будем искать проблему...

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

Как и ожидалось, WixUI_Advanced не готов к MSI 5.0 в части dual purpose package. Придётся переписывать. Чужой опыт: http://www.egoroff.spb.ru/blog/62003.html

sergey-s-betke commented 7 years ago

Однако, осталась одна проблема:

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

sergey-s-betke commented 7 years ago

Дело было в MSIDEPLOYMENTCOMPLIANT. Его установки вынуждает MSI выдавать UAC, но почему только при удалении и обслуживании? Итого - сейчас проблема решена. Для установки на пользователя UAC не возникает.

sergey-s-betke commented 7 years ago

Хорошо бы добавить тесты...

sergey-s-betke commented 7 years ago

Следует разобраться с APPLICATIONFOLDER в ITG.WixUtils. Всё-таки, всё, что связано с этой переменной, следует определять в ITG.WixUtils. А это:

sergey-s-betke commented 7 years ago