Мы создали установщик с помощью WiX.
В реестре мы сохраняем его под HKCU (см. Пример).
Иконки рабочего стола и все установлено для текущего пользователя.
<DirectoryRef Id="INSTALLDIR">
<Component Id="CMP_SaveInstallDir" Guid="52e5e617-2c9a-4514-a6b0-055e4adc6a0b">
<RegistryValue Id="MyInstallDirId" KeyPath="yes" Action="write" Root="HKCU" Key="Software\ABC\MyProduct" Name="MyProduct" Value="[INSTALLDIR]" Type="string" />
</Component>
</DirectoryRef>
Для обновлений мы также используем WiX. Мы пытаемся найти раздел реестра и, если он доступен, устанавливаем обновление.
Это хорошо работает, если лицо, установившее полный установщик, установит установщик обновления.
Теперь программа установки также должна использоваться для предварительной установки программного обеспечения на некоторых компьютерах. Это означает, что пользователь с правами администратора («Joe Admin») устанавливает программное обеспечение.
Позже обычный пользователь («Пользователь Pete» с правом установки программного обеспечения) сможет установить обновление.
Но так как полная установка была сделана "Joe Admin", "Пользователь Пита" не может выполнить обновление с помощью установщика обновления, поскольку ключ реестра не может быть найден в его реестре (HKCU "Пита Пользователь").
Я думаю, что этот сценарий не является необычным, и поэтому я надеюсь, что кто-то может помочь мне найти решение.
Заранее спасибо!