AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Programmupdate bei geöffneter EXE

Ein Thema von haentschman · begonnen am 12. Aug 2020 · letzter Beitrag vom 15. Aug 2020
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.000 Beiträge
 
Delphi 11 Alexandria
 
#1

Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 06:09
Hallöle...

Ich weiß mir keinen Rat mehr...

Gegeben:
1. Server 2012, EXE(xxx) liegt auf dem Server, 10 Mal von externen Computern gestartet

Soll

1. Die EXE soll ausgetauscht werden ohne die gestarten Instanzen abzuwürgen. Beim nächsten Start soll die neue EXE genommen werden. Die Kopie heißt: xxx.exe_

Ich habe mir sagen lassen, daß die EXE umbenannt werden kann und die neue EXE in den Ordner kopiert werden kann. Soweit so gut. Habe ich zig Mal auf dem Server mit der Batch ausprobiert. (Testinstanz) Gestern wollte ich das mit dem Original machen...Die Kopie "Zugriff verweigert" beim Löschen der Kopie. Die Kopie ließ sich auch nicht entfernen.

Batch:

Code:
echo off

if exist W:\Blubb\xxx.exe_ del W:\Blubb\xxx.exe_
if exist W:\Blubb\xxx.exe rename "W:\Blubb\xxx.exe" xxx.exe_

copy W:\Blubb_Update\Blubb\xxx.exe W:\Blubb
Geöffnete Dateien:
Die Kopie ist nicht gelistet gewesen.

Ich habe das dann wieder wie immer machen müssen...alle Instanzen raus. (Dann ließ sich die Kopie auch löschen ) und manuell kopieren.

Wo liegt der Fehler?

PS: beim nächsten Mal probiere ich das ohne das Löschen der Kopie aus.

Danke.
Miniaturansicht angehängter Grafiken
datei.png  

Geändert von haentschman (12. Aug 2020 um 06:15 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.046 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 06:14
Es gibt auch für EXEn sowas wie einen DLL Cache. Das OS startet dann von alleine eine Copy sodass das Original getauscht werden kann..
Weiß grad nicht wie das genannt wird.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.588 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 07:07
Das Umbenennen hat mit alten Windows Server Versionen geklappt, aber heutzutage nicht mehr unbedingt. Ich denke, es lässt sich nicht vermeiden, die geöffneten Dateien zu schließen.

Sherlock
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.284 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 07:18
Ich mache das genau so und hab mich damit abgefunden, dass ich dass nur 1 Mal machen kann, solange noch 1 User die EXE gestartet hat.
Nach dem Umbenennen ist die EXE_ trotzdem noch in Benutzung und kann erst gelöscht werden, wenn der letzte Benutzer "raus" ist.
Ich müsste beim 2. Mal die EXE dann anders benennen (z.B. EXE_2).

Frank Reim
Frank Reim
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.910 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 07:22
Das ist doch Murks. Entweder stellt die Anwendung beim Start fest ob sie auf einem Netzlaufwerk oder lokal liegt. Wenn nicht, kopiert sie sich in irgendein Temp-Verzeichnis und startet sich da.

Oder du machst einen kleines "Launcher"-Programm das nichts anderes tut als die jeweils neuste .exe-Datei zu starten. Du kannst also direkt neue Versionen dort ablegen und hast den Vorteil dass alte Versionen weiterhin bestehen bleiben könnten.

Code:
\\myServer\myFolder
  Mein Programm (hier klicken).exe
  app_1.0.5.exe
  app_1.0.6.exe

usw.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.056 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 07:31
Ich habe mir sagen lassen, daß die EXE umbenannt werden kann und die neue EXE in den Ordner kopiert werden kann. Soweit so gut. Habe ich zig Mal auf dem Server mit der Batch ausprobiert. (Testinstanz) Gestern wollte ich das mit dem Original machen...Die Kopie "Zugriff verweigert" beim Löschen der Kopie. Die Kopie ließ sich auch nicht entfernen.
Das mit dem Löschen können von in Benutzung befindlichen Exe funktioniert seit 20 Jahren nach dem Zufallsprinzip.
Jedes Windows Update könnte dafür sorgen das es jetzt geht oder das es nicht mehr geht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.000 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 08:10
Moin...
Zitat:
Nach dem Umbenennen ist die EXE_ trotzdem noch in Benutzung und kann erst gelöscht werden, wenn der letzte Benutzer "raus" ist.
aber auch logisch.
Zitat:
Ich denke, es lässt sich nicht vermeiden, die geöffneten Dateien zu schließen.
Mist...Wieder Arbeit umsonst.

Ich habe einen Updater welchen ich noch einbauen kann. Da müßten die Instanzen aber lokal liegen. Und genau das ist derzeit nicht möglich. Deswegen hatte ich nach einer Alternative gesucht.

Ich hatte noch einen Versuch die Instanzen von außen zu entfernen (Batch als Admin über Link):
Code:
echo off
taskkill /s SERVER /U USER /p PASSWORT /f /im "xxx.exe"
...irgendetwas wollte da auch nicht.

Zitat:
Ich müsste beim 2. Mal die EXE dann anders benennen (z.B. EXE_2).
Eine Idee hätte ich noch. Ich kann damit leben, daß die Kopien der Instanzen in einem separatem Ordner (exe_temp) liegen. (xxx.exe_1 ... xxx.exe_999 oder so) Ich bräuchte nur eine Batch, die prüft ob der Dateiname xxx.exe_? noch "frei" ist. Jeden Sonntag kann dann das exe_temp, nach dem entfernen aller Instanzen, bereinigt werden.

Könnte ihr mir helfen die Batch zu schreiben? Da bin ich zu lange raus...

Geändert von haentschman (12. Aug 2020 um 08:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.357 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 08:13
Wir machen solche Aktionen beim nächtlichen Backup, wo ja eigentlich eh alle offline sein sollten.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.000 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 08:15
Zitat:
wo ja eigentlich eh alle offline sein sollten.
Software 365/24 in Benutzung... Bei Bedarf (Absprache): Je Tag zwischen 05:00 und 05:30 Update einspielen. Das wollte ich nicht mehr. Auch die Handgriffe sind mir zu manuell. (Anmelden(ich mache Update), Remotedesktop, geöffnete Dateien schließen, Explorer, manuelles Kopieren, Abmelden(Update fertsch))

Der Build Process ist automatisiert...bis auf das Tauschen der EXE.

Geändert von haentschman (12. Aug 2020 um 08:22 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.910 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Programmupdate bei geöffneter EXE

  Alt 12. Aug 2020, 08:36
Ich verstehe nicht warum du es dir so schwer machst. Keep it simple, stupid.

Oder du machst einen kleines "Launcher"-Programm das nichts anderes tut als die jeweils neuste .exe-Datei zu starten. Du kannst also direkt neue Versionen dort ablegen und hast den Vorteil dass alte Versionen weiterhin bestehen bleiben könnten.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf