У меня есть проект установки Visual Studio вместе с загрузчиком C#. Приложение обычно устанавливалось в масштабе всей системы и для запуска требовало прав администратора. Новая версия удаляет старую версию и устанавливает новую версию в индивидуальной среде для каждого пользователя. Для первой установки новой версии программного обеспечения требуются права администратора, но для запуска программного обеспечения и обновлений права администратора не требуются. В случае обновления я хочу получить версию программного обеспечения, установленную этим пользователем, и сравнить ее с версией обновления.
Проблема в том, что информация о версии не записывается в реестр обычного пользователя:
Вместо этого записывается
Код: Выделить всё
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{}.
Каждый пользователь записывает в это местоположение HKLM, поэтому я не знаю, какая версия была установлена конкретным пользователем. Почему информация о версии пишется именно сюда? Есть ли способ изменить это?
Реестр проекта установки Visual Studio (проект -> представление -> реестр) имеет значение HKEY_CURRENT_USER -> Программное обеспечение -> Производитель. Это правильно?
Я знаю, что могу использовать файл для сохранения информации о версии, мне просто интересно, почему обычный способ реестра не работает.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... n-per-user