Inno Setup拒绝设置某些文件的权限

时间:2016-07-22 19:56:35

标签: windows inno-setup

我正在编写一个需要添加/修改某些文件权限的Inno安装脚本。但是,它正在设置某些文件的权限,而不是其他文件。相关代码:

[Files]
Source: "K:\user\Odin\Installer Files\C_Odin\*"; DestDir: "{sd}\Odin"; Flags: ignoreversion recursesubdirs createallsubdirs

// CODE OF INTEREST STARTS HERE
Source: "K:\user\Odin\Installer Files\C_Odin\PDOXUSRS.NET"; DestDir: "{sd}\Odin"; Permissions: users-modify
Source: "K:\user\Odin\Installer Files\Data\PDOXUSRS.NET"; DestDir: "{sd}\Odin\Data"; Permissions: users-modify
Source: "K:\user\Odin\Installer Files\Data\Users.DB"; DestDir: "{sd}\Odin\Data"; Permissions: users-modify

第一个文件的权限设置正确,后两个不是。非常感谢任何见解

使用/ LOG运行安装程序可执行文件,在那里找到它。

2016-07-22 16:45:12.502   -- File entry --
2016-07-22 16:45:12.502   Dest filename: C:\Odin\WorkStn.cfg
2016-07-22 16:45:12.502   Time stamp of our file: 2016-07-22 16:19:28.000
2016-07-22 16:45:12.502   Dest file exists.
2016-07-22 16:45:12.502   Time stamp of existing file: 2016-07-22 16:19:28.000
2016-07-22 16:45:12.502   Version of our file: (none)
2016-07-22 16:45:12.518   Version of existing file: (none)
2016-07-22 16:45:12.518   Installing the file.
2016-07-22 16:45:12.518   Successfully installed the file.
2016-07-22 16:45:12.518   Setting permissions on file: C:\Odin\WorkStn.cfg
2016-07-22 16:45:12.518   -- File entry --
2016-07-22 16:45:12.518   Dest filename: C:\Odin\Data\PDOXUSRS.NET
2016-07-22 16:45:12.518   Time stamp of our file: 2016-07-22 12:04:28.000
2016-07-22 16:45:12.518   Installing the file.
2016-07-22 16:45:12.518   Creating directory: C:\Odin\Data
2016-07-22 16:45:12.518   Successfully installed the file.
2016-07-22 16:45:12.518   Setting permissions on file: C:\Odin\Data\PDOXUSRS.NET
2016-07-22 16:45:12.518   -- File entry --

完整日志https://gist.github.com/nguillermin/d814a14f68db8ebba1720a3af2f42a54

1 个答案:

答案 0 :(得分:1)

日志文件显示两个文件都安装了两次。

很清楚第一个文件安装两次的原因。第一次通过通配符输入,第二次通过显式输入。没有Permissions属性的通配符条目位于具有Permissions属性的显式条目之前,因此具有权限的第二个安装将覆盖没有权限的第一个安装。

但是您没有向我们展示安装有问题文件的第二个条目。所以我们不知道它是什么样的,也不知道它是在具有Permissions属性的条目之前还是之后。

无论如何,请注意安装相同文件的两个条目是错误的。

它不能像两个条目以某种方式合并。该文件实际安装了两次,并且第一个条目的属性丢失。您应该exclude具有通配符条目中特定条目的文件,如:

Source: "K:\user\Odin\Installer Files\C_Odin\*"; Excludes: "PDOXUSRS.NET"; \
    DestDir: "{sd}\Odin"; Flags: ignoreversion recursesubdirs createallsubdirs

Source: "K:\user\Odin\Installer Files\C_Odin\PDOXUSRS.NET"; \
    DestDir: "{sd}\Odin"; Permissions: users-modify