| Autor |
Beitrag |
mig76
Hält's aus hier
Beiträge: 15
2010
|
Verfasst: Mi 12.12.07 09:53
Hab mich mal versucht durch das Forum zu suchen, aber bin leider nicht fündig geworden!
Bräuchte eine Anregung, wie ich es am einfachsten schaffen kann, mein immer wieder neu compiliertes Programm (exe-Anwendung) für die Anwender auf dem FileServer zu aktualisieren, ohne dass die Anwender, welche das Programm gerade geöffnet haben, durch Fehlermeldungen usw. zu viel gestört werden.
Momentan mach ich es so, dass ich alle geöffneten exe-Dateien "rausschmeisse", und dann die neu compilierte exe-Datei einfach überschreibe; viele Anwender die das Programm gerade geöffnet habn kriegn natürlich Schutzverletzung usw.
Wie macht ihr das eigentlich bei solchen Programmaktualisierungen? ich hab ungefähr 150-200 User, die über FileShare das programm aufrufen (also nicht auf jedem Client installiert) und ich kann die nicht alle telefonisch benachrichtigen, dass sie mal kurz aus dem Programm aussteigen sollten?!?!?!
Für jede Idee wäre ich sehr sehr dankbar
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 12.12.07 10:20
Ich habe es bei mir so gelöst, dass ich ein Startprogramm habe, dass die Überprüfung macht. Das eigentliche Programm wird dann vom Server auf die lokale Festplatte kopiert, falls eine neuere Version vorliegt. Danach wird vom Startprogramm die lokale Version gestartet (-> ShellExecute) und das Startprogramm selbst automatisch beendet.
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Mi 12.12.07 10:28
Und wie machst du das, wenn du kein Admin bist? Dann hast du ja keine Schreibrechte auf das Programme-Verzeichnis.
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 12.12.07 10:37
Moin!
Amiga-Fan hat folgendes geschrieben: | | Und wie machst du das, wenn du kein Admin bist? Dann hast du ja keine Schreibrechte auf das Programme-Verzeichnis. |
In diesem Fall drängt sich mir die Frage auf, ob es dann nicht jemand in deinem Netzwerk gibt, der gar nicht möchte, was du da machst...
Du könntest alternativ ein Beenden-Kommando vom Server aus an die Clients senden, oder ein Update-Kommando, dass über eine Batch-Datei einen Neustart macht.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 12.12.07 10:47
Amiga-Fan hat folgendes geschrieben: | | Und wie machst du das, wenn du kein Admin bist? Dann hast du ja keine Schreibrechte auf das Programme-Verzeichnis. |
Dann nimm halt ein Verzeichnis, wo der Anwender Schreibrechte hat. Es muss nicht zwangsläufig das Programmverzeichnis genutzt werden. Es genügt ja, wenn die Start-Anwendung dort steht.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 12.12.07 10:49
Das Problem mit den Schreibrechten kann auf auf sehr einfache Art lösen:
Man kopiert die aktualisierte Anwendung aus dem Netz in seine 'Eigene Dateien'. Da gehören sie schließlich hin, wenn man
a) übers Netz aktualisieren und
b) eben *nicht* die EXE aus dem Netz
starten will.
Natürlich ist das ein konzeptionelles Dilemma, in den 'Eigenen Dateien' Programme abzulegen und von dort aus zu starten (erlaubt das Vista überhaupt?), aber was soll man machen?
Alternativ (und bescheuert) wäre es, wenn jeder Anwender (aber nicht lachen) im Netz ein eigenes Verzeichnis hat, mit Schreibrechten. Dann wird die aktuelle Version eben dort herein geschrieben und auch von dort (also '<Netz>\Programme\lokal\<Benutzername>' oder so) gestartet.
Wichtig ist doch die Idee von jasocul, das man eine eigene Kopie erzeugt und die startet. So kann man einfach neue Version ins Netz stellen. Beim nächsten lokalen Programmstart wird dann automatisch die neueste Version gestartet, ohne das man einen Installationsaufwand hat.
_________________ Na denn, dann. Bis dann, denn.
|
|
Agawain
      
Beiträge: 460
win xp
D5, MySQL, devxpress
|
Verfasst: Mi 12.12.07 11:05
alzaimar hat folgendes geschrieben: | Das Problem mit den Schreibrechten kann auf auf sehr einfache Art lösen:
Alternativ (und bescheuert) wäre es, wenn jeder Anwender (aber nicht lachen) im Netz ein eigenes Verzeichnis hat, mit Schreibrechten. Dann wird die aktuelle Version eben dort herein geschrieben und auch von dort (also '<Netz>\Programme\lokal\<Benutzername>' oder so) gestartet.
|
Das ist aber in Linux Standard, macht auch wegen Dasi Sinn. Bescheuert ist es natürlich, wenn man die EXE zig mal dort ablegt  löst das Problem auch nicht.
Ich werde das bei meinem Programm so machen, daß es erst ein Vorprogramm gibt, daß nachschaut, ob es eine neuere Version gibt und die dann auf ein lokales Verzeichnis kopiert, zumal ich Leute im Netz hab, die via VPN damit arbeiten.
_________________ Gruß Aga
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Mi 12.12.07 11:14
kann man das vielleicht so machen, das beim Installieren einer Anwendung, wofür man eh Admin-Rechte braucht, die vorgeschaltete Update-Applikation selbst Admin-Rechte bekommt?
Es wird ja generell dazu geraten, auch privat nur mit eingeschränkten Rechten zu arbeiten... in Vista ist das eh standard.
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 12.12.07 11:32
Amiga-Fan hat folgendes geschrieben: | | kann man das vielleicht so machen, das beim Installieren einer Anwendung, wofür man eh Admin-Rechte braucht, die vorgeschaltete Update-Applikation selbst Admin-Rechte bekommt? |
Es geht nicht um die Installation eines Programms. Es geht "nur" um das Kopieren einer Datei.
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Mi 12.12.07 11:41
Es geht doch um Programmaktualisierungen und wie man es machen kann... man könnte doch vor dem Programmstart ein Update-Programm vorschalten, das unabhängig vom aktuellen Benutzer immer Admin-Rechte hat (so wie ein Dienst)?!
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|
mig76 
Hält's aus hier
Beiträge: 15
2010
|
Verfasst: Mi 12.12.07 12:05
Danke Danke für die vielen Infos und Tipps!!!
Hab das ganze jetzt so gelöst, dass ich eben ein kleines Programm "vorschalte", welches aus einer ini-Datei ausliest, wo denn die aktuelle, "neue" Version meines "großen" Programmes liegt, und dann diese exe-Datei eben startet; ohne dass ich neue Programme lokal auf den Client kopiere usw.
Die neuen Programme liegen halt auch immer auf dem Fileshare, und werden halt dann durchnummeriert:
ProgVers1.exe, ProgVers2.exe, ProgVers3.exe
und irgendwann beginn ich eben dann wieder von neu.
So haben die User beim Start des "vorgeschalteten" Programms immer die aktuellste Version dann geöffnet, ohne irgendwas auf den Client zu kopieren. 
|
|
Amiga-Fan
      
Beiträge: 534
|
Verfasst: Mi 12.12.07 12:18
deine lösung ist natürlich nur fürs Intranet geeignet, aber wie macht ihr das bei automatischen Updates übers Internet?
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|
mig76 
Hält's aus hier
Beiträge: 15
2010
|
Verfasst: Mi 12.12.07 12:23
Amiga-Fan hat folgendes geschrieben: | | deine lösung ist natürlich nur fürs Intranet geeignet, aber wie macht ihr das bei automatischen Updates übers Internet? |
ich kann mich im "glücklichen" Umstand schätzen, dass wir nur hausintern entwickeln, sprich wir haben momentan unsere Applikationen nur übers intranet freizugeben 
|
|