Laden...

InnoSetup und db-file in c:/program files

Erstellt von thetemplar vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.918 Views
T
thetemplar Themenstarter:in
28 Beiträge seit 2009
vor 10 Jahren
InnoSetup und db-file in c:/program files

Hallo,
ich habe gerade mein erstes Projekt mehr oder weniger fertig und will nun das ganze per Setup.exe verfügbar machen. Ich habe mir dazu Inno Setup installiert und ein Script geschrieben, welches auch soweit ganz gut funktioniert.

Mein Projekt besteht nur aus der .exe, einer Hand voll .dll und einer Datenbankdatei (sqlite), welche alle in einem Order liegen (C:\Program Files\MyProj).

Jetzt habe ich das Problem, dass meine C# Anwendung nicht die DB-Datei bearbeiten kann, da sie wohl im Admin Bereich liegt. Ich habe zwar die Berechtigungen für "Everyone" und "Users" auf "full" gesetzt, aber das hat nicht geholfen.

Nun zur Frage:
Wie mache ich das vernünftig?
Ich dachte ja schon an %AppData%, diese sind jedoch (wenn ich das richtig verstehe) Nutzergebunden. Die Datenbank soll aber Systemweit die gleiche sein.

Muss ich die Berechtigungen anders ändern oder gibt es von Windows dafür geeignete Order?

Mit freundlichem Gruß,
thetemplar

PS: Ich hoffe dass das nicht schon 1000x gefragt wurde, aber die Suche nach "C# Installationsorder" etc ist weniger zielführend...

P
16 Beiträge seit 2009
vor 10 Jahren

HI,

das Problem hatte ich auch mal.

Ich habe es so gelöst, dass ich mit Inno noch ein Data Ordner mit der Berechtigung every-full angelegt habe und die DB Datei da drin abgespeichert habe.

Gruß
pokider

Warnung von Abt vor 10 Jahren

Von dieser Variante ist ausdrücklich abzuraten!
Siehe meine Antwort weiter unten.

W
113 Beiträge seit 2006
vor 10 Jahren

Hallo thetemplar,

meines Wissens wäre der CommonApplicationData Ordner hierfür geeignet.

Ansonten einfach mal hier schauen ob was passendes dabei ist:
Environment.SpecialFolder

mfg,
xan

16.842 Beiträge seit 2008
vor 10 Jahren

Korrekt. Alles unter PrgramFiles ist read-only und soll auch so bleiben.
Dies ist mit Vista hart eingeführt worden und wird von Version zu Version strikter reguliert.

Daher kommen gemeinsame Dateien, die alle Nutzer verwenden sollen, in CommonApplicationData - Userspezifische Daten in ApplicationData
Alles andre auf C ist ein fehlerhafter Weg, besonders das programmatische Ändern von Berechtigungen, wie es Pokider vorgeschlagen hat.

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo thetemplar,

es wurde schon mehrfach danach gefragt, z.B. in [erledigt] Setup Projekt und NTFS-Rechteprobleme.

herbivore