2016-07-22 8 views
1

Ich schreibe ein Inno-Setup-Skript, das Berechtigungen zu bestimmten Dateien hinzufügen/ändern muss. Es setzt jedoch Berechtigungen für einige Dateien und nicht für andere. Relevanter Code:Inno-Setup verweigert Berechtigungen für einige Dateien

[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 

Die Berechtigungen für die erste Datei sind korrekt festgelegt, die zweiten beiden nicht. Jeder Einblick wird sehr geschätzt

Lief die Setup-Programmdatei mit/LOG, fand dies in dort.

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 -- 

Voll log https://gist.github.com/nguillermin/d814a14f68db8ebba1720a3af2f42a54

+0

Zeigen Sie uns Installer-Protokoll. –

+0

Das hast du schon gemacht, oder? Löschen Sie den Kommentar. –

Antwort

1

Die Protokolldatei zeigt, dass beide Dateien zweimal installiert sind.

Es ist klar, warum die erste Datei zweimal installiert wird. Das erste Mal durch den Platzhaltereintrag, das zweite Mal durch den expliziten Eintrag. Der Platzhaltereintrag ohne das Attribut Permissions befindet sich vor der expliziten Eingabe mit dem Attribut Permissions, sodass die zweite Installation mit den Berechtigungen die erste Installation ohne Berechtigungen überschreibt.

Aber Sie haben uns nicht den zweiten Eintrag gezeigt, der die problematische Datei installiert. Wir wissen also weder, wie es ist, noch ob es vor oder nach dem Eintrag mit dem Attribut Permissions ist.


Wie auch immer, beachten Sie, dass es falsch ist, zwei Einträge zu haben, die dieselbe Datei installieren.

Es funktioniert nicht wie die beiden Einträge irgendwie zusammengeführt werden. Die Datei wird tatsächlich zweimal installiert, und die Attribute des ersten Eintrags gehen verloren. Sie sollten exclude die Datei, die einen bestimmten Eintrag aus dem Wildcard-Eintrag haben wie:

+0

Ah, ich verstehe. Gibt es einen Weg in Inno, um deine Ausschlussmuster zu testen? Ich habe das Gefühl, dass dies nicht das letzte Mal sein wird, dass ich das durcheinander bringe. –

+0

Nicht sicher, was Sie mit "Test" meinen. Sie können die Protokolldatei des Installationsprogramms prüfen, um festzustellen, welche Dateien installiert sind und ob einige Dateien doppelt installiert sind. Wie ich es mit deinem Logbuch gemacht habe. –

+0

Ich meinte wie, ich schreibe die Suche oder ausschließen Muster und dann sofort Feedback darüber, auf welche Dateien mein Muster passen würde. Ist es das gleiche Muster, das Sie in Batch-Dateien erhalten? –