Zu meinem Programmpaket gibt es ein Setup, bei welchem im Schritt "Installationsordner" die Option "InstallAllUsersVisible" auf TRUE gesetzt ist.
Führe ich das Setup unter Windows XP aus, erscheint auch folgerichtig im entsprechenden Installationsschritt eine Auswahl "Everyone/Just me". Bei der Installation unter Windows 7 fehlt diese Auswahl und die Option "EveryOne" wird offensichtlich als default angenommen. Warum ist das so?
Danke im Voraus für eine Erklärung des Phänomens.
Ein böser Folgeeffekt ist, dass damit eine Ausführung des Setups als Nicht-Administrator unmöglich wird (You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation ... bla bla bla).
Installiere ich dagegen als Admin und starte dann als Nichtadmin das Programm, gibt es ebenfalls eine Fehlermeldung wegen nicht ausreichender Zugriffsrechte und das Programm wird beendet.
Vielleicht weiss jemand, wie ich unter Windows 7 eine Installation für einen Nutzer ohne Adminrechte hinbekommen kann?
Gruß, Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Installiere ich dagegen als Admin und starte dann als Nichtadmin das Programm, gibt es ebenfalls eine Fehlermeldung wegen nicht ausreichender Zugriffsrechte und das Programm wird beendet.
Dann ist aber was anderes auch noch falsch...
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Dann ist aber was anderes auch noch falsch...
Ehrlich?
Mein Post war dazu gedacht, herauszufinden, was falsch ist!
Deshlb gibt es darin auch 2 Fragen, eine nach der Erklärung des Phänomens (InstallAllUsesVisible) und eine nach der korrekten Erstellung eines Setups unter Windows 7 für einen Nutzer ohne Adminrechte.
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Ja - ehrlich (entschuldigung - ich konnte es mir nicht verkneifen)
Also: Wenn du dein Programm als Admin installierst (so wie zum Beispiel Office, IE, FireFox, uva), dann ist eine Fehlermeldung wegen der Rechte nach dem Programmstart eher ein Problem des Programms und nicht des Installers.
Also zum Beispiel, wenn du Daten in das Programmverzeichnis schreibst, dann ist das schlicht am Falschen Ort (Forensuche wird da helfen).
Warum das "für alle installieren" nicht sichtbar ist - kann ich dir nicht sagen. Eventuell liegt es aber an einer Default-Einstellung des Installers.
Im Übrigen:
Um ein Programm nach C:\Programme\ zu installieren benötigst du in Win7 so oder so Admin-Rechte
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Hier noch ein Nachtrag:
Bei der Installation unter Windows 7 fehlt die Auswahl "Everyone/Just me" nur, wenn ich als Nichtadministrator installiere. Aber wenn ich das richtig verstanden habe, brauche ich für die Installation in den Programmordner ja sowieso Adminrechte. Diesen Teil habe ich jetzt verstanden.
Also zum Beispiel, wenn du Daten in das Programmverzeichnis schreibst, dann ist das schlicht am falschen Ort
OK, das ist korrekt. In meinem Fall geht es aber darum, Dateien aus dem Programmverzeichnis zu lesen oder weitere Applikationen zu starten, die sich ebenfalls im Programmverzeichnis befinden (Client-Server-Architektur, Client startet Serveranwendung). Ist auch das im Programmverzeichnis nicht erlaubt?
Danke schon mal,
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Wenn der Admin das Programmpaket außerhalb des Programmordners installiert, kann der Nichtadminbenutzer fehlerfrei damit arbeiten.
Aber kann das der Sinn der Sache sein?
Danke, Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Hallo!
@Christel:
Dann solltest du die entsprechenden Daten / Dateien entwedert ale Resource in dein Programm einarbeiten, oder bei der Installation in die dafür vorgesehenen ProgramData-Ordner packen, also z.B. für AllUser oder für den installierenden Benutzer.
Kommt halt darauf an, ob diese Daten / Dateien veränderbar sein sollen oder eher nicht.
Nobody is perfect. I'm sad, i'm not nobody 🙁
Kommt halt darauf an, ob diese Daten / Dateien veränderbar sein sollen oder eher nicht.
Wie schon geschrieben, sollen die Daten nicht veränderbar sein:
In meinem Fall geht es aber darum, Dateien aus dem Programmverzeichnis zu lesen oder weitere Applikationen zu starten, die sich ebenfalls im Programmverzeichnis befinden (Client-Server-Architektur, Client startet Serveranwendung).
Dann solltest du die entsprechenden Daten / Dateien entwedert ale Resource in dein Programm einarbeiten, oder bei der Installation in die dafür vorgesehenen ProgramData-Ordner packen
Speziell für den Fall der Serveranwenung sehe ich das als komplett unrealistisch an. Solch eine Anwendung (*.EXE) gehört für mich grundsätzlich in den Programmordner. Und mit in die Ressource geht gar nicht, da es eine Serverandendung für verschiedene Clients ist, es handelt sich um ein Programmpaket.
Danke, Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Hallo,
vllt hast du ja bei FileAccess ein ReadWrite drinne oder bei FileMode ein OpenCreate?
Du kannst ja mal im Startblock ein Try-Catch einbauen und die InnerException genauer betrachten
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
vllt hast du ja bei FileAccess ein ReadWrite drinne oder bei FileMode ein OpenCreate? Du kannst ja mal im Startblock ein Try-Catch einbauen und die InnerException genauer betrachten
Der FileMode beim File.Open() ist FileMode.Open.
Die Exception sagt schlicht und einfach "Zugriff verweigert".
Inner Exception muss ich mir anschauen.
Gruß Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Hallo Christel,
wie schon von ProGamer gesagt musst du der FileAccess stimmen. Wenn du nichts angegeben hast, wird vermutlich (fälschlich) FileAccess.ReadWrite verwendet.
herbivore
Wenn du nichts angegeben hast, wird vermutlich (fälschlich) FileAccess.ReadWrite verwendet.
Jetzt hab ich's endlich verstanden.
Nein, bisher gebe ich nur Pfad und FileMode an, den Parameter FileAccess habe ich übersehen. Danke, werde ich mal probieren.
Gruß, Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Funzt prima, vielen Dank,
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.