2

根据主题...我使用 Inno Setup 制作了一个 Setup.exe,它应该安装到“{pf}{#MyAppName}”。如果我以管理员权限登录,它会在 Win XP 和 Win 7 上执行此操作,但如果我以受限用户身份尝试 Win 7,则会收到以下错误消息:

“安装程序无法创建目录 C:\Program Files\AppName”。

该怎么办?我不希望(或不需要)用户以管理员身份安装。

4

1 回答 1

6

如果要安装到%ProgramFiles%,则需要以管理员身份安装。普通用户没有%ProgramFiles%目录的写权限。

如果安装到%ProgramFiles%不是必需的,只需让用户选择一个目标目录,或者安装到{localappdata}而不是{pf}. {localappdata}保证对其所有者是可写的。它扩展到类似C:\Users\<user name>\AppData\Local.

{pf}如果以管理员身份运行,也可以安装到{localappdata}以受限用户身份运行;使用IsAdminLoggedOn来决定。

如果必须安装到%ProgramFiles%,您别无选择,只能以管理员身份运行。要使其正常工作,请确保您的 .iss 文件未定义PrivilegesRequired选项,或者将其设置为admin. 然后,当非特权用户运行安装程序时,将出现一个 UAC 提示,要求提供具有足够访问权限的凭据(除非 UAC 被禁用,在这种情况下,安装的唯一方法是运行方式)。

于 2011-11-06T07:39:07.333 回答