根据主题...我使用 Inno Setup 制作了一个 Setup.exe,它应该安装到“{pf}{#MyAppName}”。如果我以管理员权限登录,它会在 Win XP 和 Win 7 上执行此操作,但如果我以受限用户身份尝试 Win 7,则会收到以下错误消息:
“安装程序无法创建目录 C:\Program Files\AppName”。
该怎么办?我不希望(或不需要)用户以管理员身份安装。
根据主题...我使用 Inno Setup 制作了一个 Setup.exe,它应该安装到“{pf}{#MyAppName}”。如果我以管理员权限登录,它会在 Win XP 和 Win 7 上执行此操作,但如果我以受限用户身份尝试 Win 7,则会收到以下错误消息:
“安装程序无法创建目录 C:\Program Files\AppName”。
该怎么办?我不希望(或不需要)用户以管理员身份安装。
如果要安装到%ProgramFiles%
,则需要以管理员身份安装。普通用户没有%ProgramFiles%
目录的写权限。
如果安装到%ProgramFiles%
不是必需的,只需让用户选择一个目标目录,或者安装到{localappdata}
而不是{pf}
. {localappdata}
保证对其所有者是可写的。它扩展到类似C:\Users\<user name>\AppData\Local
.
{pf}
如果以管理员身份运行,也可以安装到{localappdata}
以受限用户身份运行;使用IsAdminLoggedOn来决定。
如果必须安装到%ProgramFiles%
,您别无选择,只能以管理员身份运行。要使其正常工作,请确保您的 .iss 文件未定义PrivilegesRequired选项,或者将其设置为admin
. 然后,当非特权用户运行安装程序时,将出现一个 UAC 提示,要求提供具有足够访问权限的凭据(除非 UAC 被禁用,在这种情况下,安装的唯一方法是运行方式)。