AppDataFolder отображается в неправильную папку при установке обычным пользователем

Как часть моего проекта Installshield, мне нужно поместить некоторые файлы в папку данных приложения Roaming пользователя (C:\Users\<Username>\AppData\Roaming\MyApp\MyFile). Для этого я создал компонент и установил его назначение [AppDataFolder]MyApp,

Хотя это работает нормально, когда я работаю от имени администратора, когда я запускаю установщик от имени обычного пользователя (повышение привилегий во время установки с использованием учетной записи / пароля администратора), MyFile копируется в роуминговую папку администратора (C:\Users\<AdminUsername>\AppData\Roaming\MyApp\MyFile), а не пользователя.

Это можно обойти?

1 ответ

Решение

Установка файлов в профиль пользователя является проблематичным делом. Рассмотрим другие подходы, как описано здесь: Создайте папку и файл в профиле текущего пользователя из профиля администратора.

Этот связанный ответ несколько перегружен (он пытается обобщить все проблемы, которые могут возникнуть в результате развертывания профиля пользователя), но в основном вы можете попросить ваше приложение скопировать нужный файл в нужную папку профиля пользователя при запуске приложения для каждого приложения. пользователь из доступной только для чтения копии шаблона, установленной где-то в главном каталоге установки приложения (в папке%ProgramFiles%).

Использование приложения для копирования таких файлов в профиль пользователя устранит множество проблем развертывания, которые в противном случае могут возникнуть. Пожалуйста, прочитайте связанный ответ выше для деталей.


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

ОБНОВЛЕНИЕ: проверьте, если это объяснение лучше: http://forum.installsite.net/index.php?showtopic=21586. Установив путь HKCU для хост-компонента, вы не получите то жестко закодированное имя (ошибочное), которое отображается красными буквами. Проверьте другой ответ ниже в связанной ветке, если проблема все еще не ясна.

Если вы решили пойти по пути ключа HKCU, пожалуйста, прочитайте раздел 3: MSI Self-Repair в связанном ответе вверху.

Другие вопросы по тегам