Inno Installer - 为什么要修改exe属性以要求管理员权限和XP兼容模式

时间:2012-11-29 20:48:38

标签: inno-setup

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

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

当安装程序脚本指定“PrivilegesRequired = none”时,我仍然会获得一个已修改的图标,其中包含“Admin Privilege Required”标记,并且文件属性设置为“禁用已安装的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

1 个答案:

答案 0 :(得分:2)

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

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

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