В Windows, в какие стандартные места можно установить без прав администратора?
В настоящее время мое приложение записывает файлы в каталог установки, что означает, что Program Files не является допустимым вариантом (я знаю, что это не идеально). Но я бы также предпочел, чтобы мой установщик (Inno) не требовал прав администратора, т.е. не имел UAC; Я думаю, что Google Chrome делает это.
Какое общее местоположение имеет смысл использовать по умолчанию с учетом обоих этих ограничений?
2 ответа
Если вы действительно хотите создать индивидуальный установщик, не требующий прав администратора, используйте следующие правильные настройки:
[Setup]
PrivilegesRequired=lowest
DefaultDirName={userpf}\YourAppName
Обратите внимание, что (учитывая проблемы Глитжкофа) это локальная папка, а не перемещаемая папка. Если вы хотите, чтобы настройки перемещались, вам все равно понадобится приложение, чтобы сохранить их (эквивалент вашего языка) в {userappdata}\YourAppName
папка. В любом случае, пользователю придется отдельно устанавливать программное обеспечение на каждую машину, на которой они собираются его использовать (но, как правило, это лучший вариант в любом случае).
Некоторые недостатки создания приложения для пользователя:
Вы не можете использовать права администратора при установке. В частности, это означает, что вы не можете установить много других компонентов (среды выполнения, библиотеки и т. Д.), Которые вы, возможно, хотели использовать в своем приложении. Вы также не можете использовать такие функции, как
regserver
а такжеrestartreplace
, (Это не обязательно означает, что вы по-прежнему не можете использовать эти компоненты, просто это большая проблема, если пользователь еще не установил их.)Если на одном компьютере есть несколько пользователей (общих для семей и на некоторых рабочих местах), у них будут дубликаты независимых копий вашего приложения, которые каждый пользователь должен обновлять индивидуально. Это особенно раздражает ИТ-отделов, так как они предпочитают централизованные обновления, и если ваше приложение велико, оно может тратить место на диске.
Если причина, которую вы не хотите сделать нормальным {pf}
Основанное на приложении просто то, что вы хотите быть ленивым и хранить файлы настроек в папке программы, тогда, вероятно, в целом лучше переосмыслить это решение. Это не трудно сделать это "правильно".
Есть в основном 3 типа файлов: 1: пользовательские данные, 2: настройки приложения и 3: двоичные файлы. Плюс несколько исключений. Я предполагаю, что Гарри предлагает записать в папку данных приложения пользователя файлы конфигурации и настроек, а не все приложение. Никогда не размещайте здесь двоичные файлы или данные, но сохраняйте файлы настроек здесь.
На мой взгляд, концепция "перемещаемых файлов" - плохая идея. Он забивает ваш профиль пользователя и увеличивает время входа в систему на каждом компьютере и вызывает всевозможные проблемы с синхронизацией, когда люди оставляют несколько компьютеров одновременно подключенными на несколько недель. На мой взгляд, вся концепция роуминга работает только теоретически, но зависит от дисциплины пользователя и качества приложений при управлении данными. Редко редактируемые и объединяемые файлы могут работать, если приложение хорошо. Я видел, что это работает хорошо для пользовательских словарей проверки орфографии и подобных. Реальное решение - клиент-серверные приложения с внутренними базами данных с целью сохранения настроек. Все остальное в конечном итоге потерпит неудачу - если это приложение легкого веса, которое может не иметь значения.
Пользовательские данные должны быть сохранены только впапку" Мои документы". и только несколько параметров конфигурации должны перемещаться. Если сеть настроена так, что "Мои документы" могут перемещаться, системный администратор должен быть немедленно застрелен:-). Это должен быть общий доступ к серверу независимо от компьютера, на котором зарегистрирован пользователь.
Я сорвался с места и ответил на слишком много вопросов, которые вы не задавали. Просто ненавижу видеть, как люди решают проблемы, о которых они могут не знать. Если у вас есть супер маленькое приложение, которое в основном "портативное", как мы его называем при развертывании. Это означает, что приложение, в котором вы можете запустить одну папку на USB-накопителе, затем сохранить все в данных пользователя, а также сохранить приложение небольшим и легким с помощью одного файла настроек и двоичного файла. Никаких UAC или прав администратора не требуется.