Inno Setup 5.6.0 关于快捷方式和管理员 v 用户的警告

问题描述 投票:0回答:2

我将 Inno Setup 升级到 5.6.0,现在当我编译时,我收到警告:

警告:

[Setup]
部分指令
PrivilegesRequired
设置为
admin
但每用户区域(
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
文件夹中。当程序启动时,它会查找任何丢失的文件并从这个公共位置获取它们。

因此,唯一的问题与这两个快捷方式有关。走捷径的正确方法是什么?因为正常情况下安装程序会添加快捷方式。

installation inno-setup
2个回答
9
投票

为所有用户添加快捷方式,而不仅仅是为正在安装应用程序的用户(管理员)。

  • 使用

    {commondesktop}
    代替
    {userdesktop}

  • 使用

    {commonappdata}
    代替
    {userappdata}

    (虽然“快速启动”工具栏是一个过时的功能)


有关替代方法,请参阅 Inno Setup 在所有用户的所有桌面上创建单独的快捷方式


许多安装都有“为我”/“为所有人”选项。在第一种情况下,您不需要管理员权限,可以使用

user*
常量。在后一种情况下,您需要管理员权限,并且应该使用
common*
常量。另请参阅使 Inno Setup 安装程序仅在需要时请求权限提升

Inno Setup 6 内置支持非管理安装模式。然后,您可以使用“自动”常量,例如

{autodesktop}
{autoappdata}


0
投票

谢谢,但需要更多帮助,让我解释一下:

  • 我收到这个警告是因为
    {userappdata}
    在我从 Inno Setup 5.5.4 (a) 升级到 6.2.2 后,我还收到了另一个警告,通过替换解决了
    {pf}
    -->
    {commonpf}
    .. .

但是我仍然收到警告,现在不再是

(HKCU,userappdata)
,它现在只说
(HKCU)

警告:[Setup] 部分指令 PrivilegesRequired 设置为 admin,但脚本使用每用户区域 (HKCU)。无论 Windows 版本如何,如果安装是管理性的,那么您应该小心地进行任何每个用户区域的更改:此类更改可能无法实现您的预期。请参阅帮助文件以获取更多信息。

非常感谢

{userappdata}
-->
{commonappdata}
,但是还需要什么才能消除该警告?

提示:我确信(因为如果我删除该部分,则不再显示警告)它与

[Registry]
部分相关,其中我有一些 user 注册表路径上需要的注册表项。

有问题的部分是:

[Registry]
Root: HKCU; Subkey: Software\SomePath\SomeSubPath; ValueType: string; ValueName: SomeName; ValueData: SomeData; Tasks: ; Languages: 
Root: HKCU; Subkey: Software\SomeOtherPath\SomeSubPath; ValueType: string; ValueName: SomeOtherName; ValueData: SomeOtherData;
Root: HKCU; Subkey: Software\SomeOtherPath\SomeOtherSubPath; ValueType: string; ValueName: SomeOtherName; ValueData: SomeOtherData;

如何更改此类注册表部分以使该密钥存储在 user 注册表配置单元中?

© www.soinside.com 2019 - 2024. All rights reserved.