Installation, Ordner, Rechte

12/09/2007 - 12:21 von michael meier | Report spam
so, jetzt nochmal schnell zusammengefasst
- mein programm kopiert bei der installation (durch einen admin) dateien,
auf die auch normale benutzer schreibrechte brauchen
- diese landen bis jetzt im programm-ordner der applikation
- um die recht zu setzen hab ich eine benutzerdefinierte aktion mit ins
setup aufgenommen, die letztendlich eine methode in einem dll-projekt
aufruft, von wo aus ich die dateirechte per FileSecurity.AddAccessRule
setze

soweit klappt das auch, ABER:

wie sagt man der benutzerdefinierte-aktion-dll am besten, wo diese beiden
dateien liegen, deren rechte geàndert werden sollen?
folgende möglichkeiten/probleme sehe ich:

1. dateien landen mit im applikations-order (c:\programme\...)
- was, wenn benutzer NICHT dieses Verzeichnis bei der installation angibt
sondern ein anderes? dann müsste die installer-klasse (also die, die die
benutzerdefinierte aktion (umsetzen der schreibrechte) abwickelt) von
diesem ort informiert werden können - geht das irgendwie?

2. dateien landen im gemeinsame-dateien-ordner
- ok, dann funktioniert die rechte-vergabe, weil ich ja den ort der
dateien kenne.
- nur hab ich dann spàter beim programmstart das problem, daß in der
app.exe.config der connectionstring zu den datenbankdateien drinnen steht
und ich da ja nicht fix "gemeinesame dateien" eintragen kann, weil dieser
ordner ja wieder auf jedem system anders heißen kann.
im moment steht im connectionstring "Data
Source="|DataDirectory|\Protron Prüfplanung.mdb&quot". für das
anwendungsverzeichnis wird also der platzhalter "|datadirectory|" benutzt
- gibt es analog dazu sowas auch für den "gemeinsame dateien"-ordner?

wie kommt man hier am besten zu potte?

micha
 

Lesen sie die antworten

#1 michael meier
12/09/2007 - 12:43 | Warnen spam
1. dateien landen mit im applikations-order (c:\programme\...)
- was, wenn benutzer NICHT dieses Verzeichnis bei der installation
angibt sondern ein anderes? dann müsste die installer-klasse (also die,
die die benutzerdefinierte aktion (umsetzen der schreibrechte)
abwickelt) von diesem ort informiert werden können - geht das irgendwie?


hierzu hab ich grad gemerkt, gibt es im StringDictionary der
Context-Property der installerklasse einen key "assemblypath", der mir den
pfad zur installer-dll zurückgibt, der ja wohl das anwendungsverzeichnis
ist. kann man sich darauf verlassen, daß das so funktioniert? oder ist das
eher keine geeignete wahl?

micha

Ähnliche fragen