Мой установщик устанавливает приложение на "Программе files\MyApp", приложение при выполнении файлов изменений в этом местоположении. На Vista по умолчанию это поднимает проблемы контроля учётных записей.
Я хочу, чтобы пользователи смогли выполнить MyApp, не будучи администраторами или борьбой с экраном UAC каждый раз, они запускают приложение. Если они должны пройти через контроль учётных записей для установки приложения, это в порядке, хотя все еще не оптимальный.
Я думал, что имел, это настроило, но это не работает:
[Setup]
PrivilegesRequired=admin
AppName=My App
AppVerName=My App 1.0
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
UninstallDisplayIcon={app}\bin\MyApp.ico
OutputDir=..\Installer
ChangesAssociations=yes
[Dirs]
Name: "{app}\"; Permissions: everyone-modify
Name: "{app}\redist"; Flags: deleteafterinstall;
Конкретно я думал Name: "{app}\"; Permissions: everyone-modify
позволил бы обычным пользователям выполнить его, удалив защиту контроля учётных записей на Программе Files\MyApp.
Я выбираю в значениях немного случайным, кто-либо может предложить некоторые изменения? Снова, цель состоит в том, что когда-то установленный, обычные пользователи в неадминистраторских учетных записях могут выполнить его даже при том, что файлы сохранены в Программных файлах без умирающего контроля учётных записей. Как вторичная вещь, сама установка не должна быть слишком сумасшедшей... единственная подсказка для авторизации контроля учётных записей или пароля администратора.
Не устанавливайте под {pf}. Вместо этого установите в место, доступное для записи (например, {localappdata}).
http://www.kinook.com/blog/?p=53
Вы должны изменить свое приложение так, чтобы оно сохраняло общие данные в какой-нибудь другой папке.
Предоставление прав на запись любому пользователю в папку в PF, которая содержит исполняемый код (exe, dll и т.д.), является проблемой безопасности (Злой пользователь может изменить exe файл и ждать, пока администратор запустит его)
В качестве альтернативы вы можете хранить файлы в подпапке в PF и предоставлять доступ на запись только к ней, таким образом ваши исполняемые файлы будут в безопасности.