Inno setup - установить приложение в Program Files, разрешить запуск без прав администратора - PullRequest
1 голос
/ 22 апреля 2010

Мой установщик устанавливает приложение в «Program files \ MyApp», приложение при запуске изменяет файлы в этом месте.В Vista по умолчанию это вызывает проблемы с UAC.

Я хочу, чтобы пользователи могли запускать MyApp, не обращая внимания на экран UAC и не сражаясь с ним каждый раз, когда запускают приложение.Если для установки приложения нужно пройти через 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 позволит обычным пользователям запустить его, сняв защиту UAC в Program Files \ MyApp.

Я выбираю значения немного случайно, кто-нибудь может предложить какие-то изменения?Опять же, цель состоит в том, чтобы после установки обычные пользователи в учетных записях, не являющихся администраторами, могли запускать его, даже если файлы сохраняются в Program Files, без включения UAC. Как вторичная вещь, сама установка не должна быть слишком безумной ...одно приглашение ввести пароль администратора или авторизацию UAC.

Ответы [ 2 ]

1 голос
/ 30 апреля 2010

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

Предоставление разрешений на запись для любого пользователя в папке в PF, которая содержит исполняемый код (exe, dll и т. Д.), Является проблемой безопасности (злой пользователь может изменить exe-файл и подождать, пока его запустит администратор)

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

1 голос
/ 23 апреля 2010

Не устанавливать под {pf}. Вместо этого установите в доступное для записи место (например, {localappdata}).
http://www.kinook.com/blog/?p=53

...