Установщик Windows 3.1 -Необходимо установить для каждого пользователя - PullRequest
0 голосов
/ 03 мая 2018

есть

У меня есть установщик, созданный проектом установщика Windows. Проблема заключается в следующем: когда я закончил установку пользователем Windows, целевое приложение хорошо работает под этим пользователем. Но когда я вхожу в систему от другого пользователя, он предлагает установить приложение снова.

Мое ожидание: я не хочу, чтобы он запрашивал повторную установку и мог использовать напрямую.

Я пытаюсь отредактировать часть реестра проекта установщика, переместить ключ из «HKEY_CURRENT_USER» в «HKEY_USERS», он не работает, в реестре конечного компьютера ключ все еще находится в «HKEY_Current_user», я сомневаюсь, что первопричина независимо от реестра. И я не знаю, почему не работает модификация реестра.

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Хотя проблема может заключаться в «исправлении», в некоторых случаях это не означает, что установка не работает, и это потому, что это поведение используется для предоставления файлов и элементов реестра пользователям, которые еще не использовали приложение.

Одной из очевидных причин является установка файла в расположение профиля пользователя, например имена свойств стандартных папок MSI, такие как AppDataFolder (полный путь к папке роуминга для текущего пользователя), PersonalFolder или некоторые другие. В этих случаях в AppDataFolder есть файл для пользователя, который устанавливает, но НЕ для другого пользователя, который регистрируется позже. Предположительно, приложению требуется файл для всех пользователей приложения, поэтому установщик Windows «восстанавливает» приложение, устанавливая файл, для чего требуется оригинальный MSI. Та же идея применима к записям реестра HKCU, которые будут отсутствовать для другого пользователя, но два замечания по поводу вашего комментария реестра:

  1. HKEY_CURRENT_USER, возможно, совпадает с HKEY_USERS, поскольку HKCU - это просто куст реестра HKEY_USERS для текущего вошедшего в систему пользователя. Переход с одного на другой не обязательно что-то исправит

  2. Маловероятно, что причиной исправления является отсутствующая запись реестра, поскольку записи реестра восстанавливаются из локально кэшированного файла MSI, но для отсутствующих файлов требуется исходный файл MSI. Однако вы сказали, что получили диалоговое окно о настройке продукта, но не сказали, требуется ли для него оригинальный MSI. Если исходный MSI недоступен (или вы его скрываете), и если для диалога требуется файл, он запросит MSI. Если MSI скрыт, и на короткое время вспыхивает диалоговое окно, значит, отсутствует запись реестра HKCU.

0 голосов
/ 15 мая 2018

Спасибо всем за любезную помощь, я только что получил представление от https://blogs.flexera.com/installtalk/2011/02/you-again-understanding-windows-installer-msi-self-repair/

«причина в том, что приложение было запущено по объявленному ярлыку», поэтому я изменяю «Всегда создавать ярлык» на false в свойствах проекта установщика. Проблема решена.

0 голосов
/ 03 мая 2018

Самовосстановление, бич общества : Самовосстановление есть так много, я писал об этом много раз, но по сути это ключ к компоненту путь отсутствует (или поврежден), и установщик Windows пытается исправить ситуацию, установив отсутствующий компонент. Если ваш компонент имеет путь к ключу HKCU, он будет установлен для каждого пользователя при запуске приложения (с помощью объявленного сочетания клавиш ) - поскольку HKCU каждого пользователя отличается, ресурс должен существовать для каждого пользователя. Когда установщик Windows запускается для установки этого пользовательского ресурса, мы называем это самовосстановлением. Самовосстановление также является общим механизмом проверки правильности установки приложения в целом (оно предназначено не только для пользовательских ресурсов). Вот очень краткое, но более сложное объяснение самовосстановления .

Найдите виновника : Похоже, вы знаете, какой компонент запускает самовосстановление. Если вы этого не сделаете, вы можете найти его , используя эту процедуру .

Решение проблемы : Трудно обеспечить общее исправление для всех ситуаций. Очень часто вы можете удалить весь ресурс, например, если это ключ реестра HKCU, вы просто удаляете его из установки и ваше приложение может добавить его в качестве значения по умолчанию при первом запуске. Это не всегда возможно - некоторые приложения вызывают всевозможные драмы, если отсутствуют разделы реестра по умолчанию (что показывает плохо спроектированное приложение - любое приложение должно записывать все настройки конфигурации пользователя по умолчанию при запуске), и в этих случаях я использую либо самовосстановление ( эффективно, поэтому он запускается только один раз), или Active Setup - это функция Microsoft, позволяющая запускать «что-то работающее» один раз. Смотрите ссылку для получения более подробной информации.

Данные и настройки, специфичные для пользователя : Здесь приведен фрагмент о распространении файлов профиля пользователя и настроек реестра - и о том, как это всегда было проблематично. И некоторые предложения о том, как с этим бороться. Не очень, но стоит прочитать: Создать папку и файл в профиле текущего пользователя из профиля администратора

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


О происхождении самовосстановления : Для справки, вот несколько ссылок с дополнительной информацией о самовосстановлении, которую может переварить любой здравомыслящий человек: -):

  1. Самовосстановление - объяснил .
  2. Самовосстановление - поиск реальных решений .
  3. Самовосстановление - как избежать этого в вашей собственной упаковке .

Некоторые дополнительные ссылки:

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