Ich habe ein Projekt geerbt, das WIX Toolset (3.10.3) verwendet, um das Installationspaket zu erstellen. Die Anwendung lädt und speichert freigegebene Daten in c:\ProgramData\Vendor\ApplicationName
. Dieser Pfad wird jedoch nicht während der Installation erstellt, sondern während der Ausführung der Anwendung selbst, wenn der Pfad zum ersten Mal angefordert wird.Berechtigungen für vorhandene Ordner und Dateien in ProgramData mit WiX Toolset festlegen
Ich habe jetzt ein Problem mit Berechtigungen festgestellt, das auftritt, wenn mehrere Windows-Benutzer die Anwendung verwenden. Wenn die Anwendung neue Datendateien vom Back-End herunterlädt, erhält der aktuelle Windows-Benutzer die Berechtigungen für die vollständige Kontrolle für diese Dateien. Wenn sich jemand mit einem anderen Windows-Konto anmeldet, hat er nur Leseberechtigungen für diese Dateien. Und diese gemischten Berechtigungen verursachen Probleme, wenn die Anwendung versucht, die lokalen Dateien mit dem Back-End synchronisiert zu halten.
Da die Anwendung keine erhöhten Privilegien erfordert, muss ich dies während der Installation korrigieren. Als ersten Schritt habe ich jetzt sichergestellt, dass der Ordner während der Installation erstellt wird und dass er die richtigen Berechtigungen mit <util:PermissionEx User="Everyone" GenericAll="yes" />
erhält. Da diese Berechtigungen vererbt werden, wird das Problem für alle Benutzer behoben, die eine Neuinstallation durchführen.
Das Problem ist, dass die Berechtigungen nur von Ordnern/Dateien geerbt werden, die nach der Installation erstellt werden. Dies bedeutet, dass Benutzer, die von einer früheren Version upgraden, weiterhin Datendateien mit gemischten Berechtigungen haben. Ich muss daher sicherstellen, dass alle vorhandenen Ordner und Dateien die neuen Berechtigungen während der Installation erhalten. Wie erreiche ich das?