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