我正在写Inno Setup脚本,需要添加/修改某些文件的权限。 但是,它是设置一些文件的权限而不是其他的。 相关代码:
[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运行安装程序,find它。
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
日志文件显示两个文件都安装了两次。
很明显为什么第一个文件安装了两次。 第一次通过通配符输入,第二次通过显式输入。 没有Permissions
属性的通配符条目位于具有Permissions
属性的显式条目之前,因此具有Permissions
的第二个安装会在没有权限的情况下覆盖第一个安装。
但是你没有向我们展示安装有问题文件的第二项。 所以我们不知道它是什么样子,也不知道它是在具有Permissions
属性的条目之前还是之后。
无论如何,请注意有两个条目安装相同的文件是错误的。
它不工作就像两个条目合并。 该文件实际上安装了两次,并且第一个条目的属性丢失。 您应该从通配符条目中排除具有特定条目的文件,例如:
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