1

使用 Inno 构建的安装工具包会安装两个 EXE 文件。安装后,一个文件只需要普通用户权限。第二个文件标有需要管理员权限和 XP 兼容模式的属性。

原始 EXE 文件没有设置需要管理员权限或 XP 兼容模式的可见属性,并且在正常用户模式下的 Windows 7 机器上运行良好。第二个文件最初是在 XP 系统上编译的 - 但当我将它(没有安装程序)复制到 Windows 7 系统时似乎运行正确。

当安装程序脚本指定“PrivilegesRequired=none”时,我仍然会看到一个带有“需要管理员权限”标记的修改图标和一个为已安装的 EXE 文件设置为“禁用视觉主题”的文件属性。

Inno 版本是 5.5.0(a)

如何让安装程序复制 EXE 文件而不更改其属性?

#define InstallRoot "D:\InstallationSource\Tracker\"
#define AppRoot "C:\Tracker\"
......

[Setup]
;directories
SourceDir={#InstallRoot}
DefaultDirName={#AppRoot}
.......

[Files]
Source: "*"; DestDir: "C:\Tracker\"; Flags: recursesubdirs
4

1 回答 1

2

Inno 不会更改这些属性。它们是根据 .exe 文件的文件名在每个用户的基础上设置的,无论它位于哪个目录。因此,如果您为 .exe 文件名选择了过于通用的东西(例如“setup.exe”或“ app.exe") 那么您可能会从其他应用程序获取兼容性设置。

如果您的安装程序名称是通用名称(同样是“setup.exe”),那么 Windows 可能会尝试通过将其继承的兼容性设置复制到它安装的任何应用程序来“提供帮助”。

无论哪种方式,选择唯一的文件名。

于 2012-11-30T08:47:27.117 回答