Установщик с WiX (предустановлен администратором и обновлен пользователем)? - PullRequest
1 голос
/ 26 октября 2011

Мы создали установщик с помощью 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 "Пита Пользователь").

Я думаю, что этот сценарий не является необычным, и поэтому я надеюсь, что кто-то может помочь мне найти решение.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Вот статья, которая может вам помочь: http://setupanddeployment.com/installation-environment/peruser-permachine/

По сути, вы неправильно обрабатываете места установки. Если ваша установка для каждого компьютера (для всех пользователей), она должна использовать только для каждого компьютера. HKEY_CURRENT_USER - это местоположение для каждого пользователя, и использование его в установщике для каждого компьютера является плохой практикой. Отсюда твоя проблема.

1 голос
/ 26 октября 2011

Я думаю, Cosmin прав , и в этом случае вы должны использовать на машину .

В конце концов, если приложение Joe Admin установило приложение, тогдатолько этот пользователь имеет к нему доступ: значки рабочего стола, программные файлы и их настройки хранятся в профиле администратора.Поэтому у Pete User нет доступа к каким-либо компонентам приложения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...