Как перейти с одного пользователя на все установки пользователя?
Для нашего msi мы не упоминали свойство allusers в существующих выпусках. поэтому по умолчанию это пошло в соответствии с пользователем.
Наши клиенты установили приложение, используя идентификатор администратора, и этот администратор покинул компанию. Таким образом, его идентификатор пользователя больше не находится в действительном состоянии.
Теперь они не могут перейти на новую версию, используя другую учетную запись администратора (так как она была установлена для каждого пользователя).
Хотя мы можем изменить нашу msi для поддержки всех пользователей, она не будет работать при миграции (серьезное обновление).
Похоже, только когда мы дадим полную новую версию, в которой не поддерживается ни одна существующая версия, мы сможем решить проблему.
Есть ли какой-нибудь другой обходной путь, о котором следует упомянуть, даже если предыдущий msi был на пользователя, он должен быть обновлен сейчас?
Мы используем WIX 3.5 для нашего процесса установки.
1 ответ
К сожалению, установщик Windows не поддерживает обновление "в разных контекстах". Как вы обнаружили, пакет для компьютера не может обновить пакет для пользователя, а пакет для пользователя не может обновить пакет для компьютера.
Вы могли бы написать исполняемый файл, который находит старые MSI и удаляет их, используя такие API, как ::MsiEnumRelatedProducts()
найти продукты, а затем ::MsiConfigureProduct()
удалить их. Однако без учетной записи пользователя я не уверен, что вы сможете увидеть продукт, установленный для каждого пользователя.