我将Inno Setup升级到5.6.0,现在编译时我收到警告:
警告:[设置]部分指令" PrivilegesRequired"被设置为 "管理"但每个用户区域(HKCU,userappdata,userdesktop)使用 剧本。无论Windows的版本如何,如果安装 是行政然后你应该小心做任何每个用户 区域变化:此类变化可能无法达到您的目的。看到 帮助文件以获取更多信息。
我理解它的意思。在[icons]
部分,我有:
Name: "{userdesktop}\Meeting Schedule Assistant"; \
Filename: {app}\MeetSchedAssist.exe; \
Tasks: desktopicon;
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Meeting Schedule Assistant"; \
Filename: {app}\MeetSchedAssist.exe; \
MinVersion: 4,4; \
Tasks: quicklaunchicon;
我想"回到当天"这些是由脚本向导创建的。现在,我的安装程序与PrivilegesRequired
一起运行。并且所有数据文件都安装到ProgramData
文件夹。当程序启动时,它会查找任何丢失的文件并从这个公共位置获取它们。
因此,唯一的问题与这两个快捷方式有关。什么是迎合捷径的正确方法?由于在正常情况下安装程序将添加快捷方式。
答案 0 :(得分:5)
为所有用户添加快捷方式,不仅适用于正在安装应用程序的用户(admin)。
使用{commondesktop}
代替{userdesktop}
。
使用{commonappdata}
代替{userappdata}
(虽然"快速启动"工具栏是一个过时的功能)
有关替代方法,请参阅Inno Setup Create individual shortcuts on all desktops of all users。
许多装置对我来说都是" /"对于所有"选项。在第一种情况下,您不需要管理员权限,您可以使用user*
常量。在后一种情况下,您需要管理员权限,您应该使用common*
常量。另请参阅Make Inno Setup installer request privileges elevation only when needed。
Inno Setup 6内置了对non-administrative install mode的支持。然后,您可以使用" Auto" constants,例如{autodesktop}
和{autoappdata}
。