Как перейти с одного пользователя на все установки пользователя?

Для нашего msi мы не упоминали свойство allusers в существующих выпусках. поэтому по умолчанию это пошло в соответствии с пользователем.

Наши клиенты установили приложение, используя идентификатор администратора, и этот администратор покинул компанию. Таким образом, его идентификатор пользователя больше не находится в действительном состоянии.

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

Хотя мы можем изменить нашу msi для поддержки всех пользователей, она не будет работать при миграции (серьезное обновление).

Похоже, только когда мы дадим полную новую версию, в которой не поддерживается ни одна существующая версия, мы сможем решить проблему.

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

Мы используем WIX 3.5 для нашего процесса установки.

1 ответ

Решение

К сожалению, установщик Windows не поддерживает обновление "в разных контекстах". Как вы обнаружили, пакет для компьютера не может обновить пакет для пользователя, а пакет для пользователя не может обновить пакет для компьютера.

Вы могли бы написать исполняемый файл, который находит старые MSI и удаляет их, используя такие API, как ::MsiEnumRelatedProducts() найти продукты, а затем ::MsiConfigureProduct() удалить их. Однако без учетной записи пользователя я не уверен, что вы сможете увидеть продукт, установленный для каждого пользователя.

Другие вопросы по тегам