| 

.NET C# Java Javascript Exception

3
Hallo,

mit meinem Setup-Projekt werden 2 Datenbankdateien (SQL-Server compact 3.5) in den Ordner C:\ProgramData\MeineAnwendung (Environment.SpecialFolder.CommonApplicationData) kopiert. Wenn meine Anwendung gestartet wird, so hat sie keine Schreibrechte auf diese beiden Dateien. Meine Anwendung erstellt im selben Ordner zur Laufzeit weitere Dateien (z.B. Log's), die einwandfrei funktionieren.

Meine Frage wäre: Wie kann ich das Setup dazu animieren, die Zugriffrechte auf diese beiden Dateien in meinem Sinne zu vergeben. Oder ist das möglicherweise der falsche Ordner für solche Dateien; bin ich auf dem Holzweg?

Vielen Dank für Eure Tipps...
News:
01.03.2011
Gast
33 1 3
1 Antwort
3
In diesem Ordner hat per default nur der Ersteller einer Datei Schreibrechte darauf. Es darf aber jeder eine Datei darin erstellen. Es sieht also so aus, als ob Deine Anwendung unter einem anderen Benutzer läuft als das Setup.
Hier hatte jemand ein sehr ähnliches Problem, und ich finde den dort gemachten Vorschlag ganz pfiffig: die Datenbankdateien werden vom Setup nicht in den eigentlichen Zielordner kopiert, sondern (im Sinne einer Vorlage) ins Installationsverzeichnis. Die Anwendung prüft beim Start, ob die Dateien im CommonApplicationData-Ordner vorhanden sind - wenn nicht, werden sie aus dem Installationsverzeichnis dorthin kopiert und mit Schreibrechten für alle Benutzer versehen (File.SetAccessControl()). Also eine Art "lazy setup", die möglicherweise einfacher zu implementieren ist als ein Tweaken des Setup-Projekts.
01.03.2011
Matthias Hlawatsch 13,2k 4 9
Die Installation und der Start der Anwendung wurde von mir (Admin-Rechte) durchgeführt. Anwendung und Setup liefen also unter dem gleichen Benutzer. Ich hatte auch probiert, beim ersten Start die Rechte der beiden Dateien einzustellen, was mir mit einer Fehlermeldung (unauthorisierter Vorgang o.ä.) quittiert wurde.

Ich habe Deinen Vorschlag umgesetzt und kopiere die Dateien beim ersten Start einfach um. Dies funktioniert einwandfrei.

Also vielen Dank für den Tipp.
– Gast 02.03.2011
Freut mich zu hören. Danke für das Feedback!
Matthias Hlawatsch 02.03.2011

Stelle deine Win7-Frage jetzt!