file-rename

___ answer6695681 ___
  1. Nein, das ist nicht akzeptabel. Mach das nicht. Dies ist kein gültiger Bereitstellungsmechanismus. Dies sollte dein oder sein erster Hinweis gewesen sein:

      

    Es wird manchmal eine Ausnahme ausgelöst, dass die Datei in seinem Programm verwendet wird, aber wenn er versucht, sie in einer Schleife umzubenennen, wird es schließlich gelingen.

    Und es wird sowieso nicht funktionieren. Seine Theorie ist völlig falsch:

      

    Mit diesem Wissen will er eine laufende exe umbenennen und über eine neue Version der besagten exe kopieren, so dass jeder, der seine im Speicher befindliche Kopie von foo.exe ausführt, in Ordnung ist und jeder, der eine Verknüpfung auf foo.exe öffnet, bekommt neue Kopie mit Updates angewendet.

    Insbesondere wird die Kopie im Speicher nicht automatisch durch die neue ausführbare Datei ersetzt, nur weil sie denselben Namen hat. Der Grund, dass Sie die ausführbare Datei an erster Stelle umbenennen dürfen, liegt daran, dass das Betriebssystem den Dateinamen nicht verwendet, um die Anwendung zu finden. Die ursprüngliche ausführbare Datei wird weiterhin geladen und bleibt geladen, bis Sie sie explizit entladen und die neue, geänderte ausführbare Datei laden.

    Beachten Sie, dass selbst moderne Webbrowser wie Chrome und Firefox mit ihrer superschicken Automatik, im Hintergrund, niemand merkt, dass sie existieren, updaters noch immer die Anwendung schließen und neu starten müssen Übernehmen Sie die Updates.

    Mach dir keine Sorgen darüber, den Boten hier zu erschießen. Es ist wahrscheinlicher, dass Ihre Kunden und Ihre technische Supportabteilung Sie zuerst erschießen.

  2. Siehe Nummer 1.

___ answer6695640 ___

In unserer Organisation haben wir das Problem von Updates gelöst, indem wir zwei Release-Ordner mit EXE_A und EXE_B haben. Wir haben auch einen Release-Ordner namens EXE, der nur Links hat, von denen ALL entweder auf EXE_A oder EXE_B verweist, von denen aus der Benutzer die Anwendungen ausführt.

Wenn wir eine neue Version des Programms veröffentlichen, veröffentlichen wir sie in dem Ordner, auf den in den Links nicht verwiesen wird, und aktualisieren dann die Verknüpfungen (EXE). Auf diese Weise kommen Sie nicht in Ausnahmen, dass Benutzer die Anwendung / Assemblys halten. Auch wenn ein Benutzer die aktualisierte Version ausführen möchte, muss er nur den Link im EXE-Ordner schließen / erneut ausführen.

    
___ answer6696116 ___

Ein Flugzeugmechaniker und ein Chirurg treffen sich in einer Bar. Der Mechaniker sagt: "Weißt du, wir haben im Grunde den gleichen Job. Wir nehmen kaputte Sachen raus und legen neue, bessere Teile rein." Der Chirurg sagt "Ja, aber Sie müssen das Flugzeug nicht fliegen lassen, während Sie die Reparaturen machen!"

Der Versuch, eine Anwendung zu aktualisieren, indem Dateien verschoben werden, während die Anwendung ausgeführt wird, ist ungefähr so ​​gefährlich wie der Versuch, ein Flugzeug im Flug zu reparieren. Möglich? Sicher. Stark erhöhtes Risiko für Catestrophic Crash? Ja.

Wenn es sich bei der Anwendung, die Sie aktualisieren, um eine verwaltete Anwendung handelt, sollten Sie verwenden ClickOnce-Bereitstellung . Wenn die Anwendung das nächste Mal ausgeführt wird und eine neue Version verfügbar ist, wird sie automatisch kopiert und installiert. Das ist viel sicherer und angenehmer als zu versuchen, sich mit einer Anwendung zu beschäftigen, während sie noch läuft.

    
___ qstntxt ___

Wir versuchen, Updates auf mehrere Server gleichzeitig zu übertragen, und mein Manager hat festgestellt, dass es möglich ist, laufende .exe-Dateien umzubenennen. Mit diesem Wissen will er eine laufende exe umbenennen und über eine neue Version der exe kopieren, so dass jeder, der seine Kopie im Speicher von foo.exe ausführt, in Ordnung ist und jeder, der eine Verknüpfung auf foo.exe öffnet, eine neue Kopie mit bekommt Aktualisierungen angewendet.

Ich denke, ich muss klarstellen, Er erwartet nicht, dass die alte Kopie magisch aktualisiert wird, er erwartet nur, dass sie die alte Kopie weiter laufen lassen, bis sie die exe wieder öffnen, in welchem ​​Fall sie dann die neue öffnen wird hat den Namen des alten.

Es gibt manchmal eine Ausnahme, dass die Datei in seinem Programm verwendet wird, aber wenn er versucht, es in einer Schleife umzubenennen, wird es schließlich erfolgreich sein. Auf meiner Maschine muss ich es noch in einer Schleife arbeiten lassen.

Meine erste und wichtigste Frage lautet: Ist es jemals akzeptabel, dies zu tun? Sollte das Umbenennen einer laufenden ausführbaren Datei jemals ein gültiges Szenario sein?

Zweitens, wenn es ein gültiges Szenario ist, wie könnte man das dann zuverlässig tun? Unsere aktuellen Gedanken sind es, einige Male mit File.Move (C #) zu versuchen, eine Umbenennung vorzunehmen und wenn es nicht funktioniert, dann schreibe in ein Fehlerprotokoll, damit es manuell behandelt werden kann.

    
___ tag123windows ___ ALLGEMEINER WINDOWS-SUPPORT IST OFF-TOPIC. Support-Fragen können unter https://superuser.com gestellt werden. Windows ist ein von Microsoft entwickeltes Betriebssystem. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Verwendung von Windows-APIs oder Windows-spezifischem Verhalten in Bezug auf Ihren Code bezieht, nicht nur, weil Sie Ihren Code unter Windows ausführen. ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123filename ___ rename-file bedeutet, den Namen einer Datei zu ändern ___ qstnhdr ___ Rename eine laufende ausführbare Datei (exe) [duplizieren] ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123fileinuse ___ Fragen zu Problemen beim Ändern von Dateien aufgrund eines zweiten Programms mit Lese- oder Schreibsperre. ___ answer6695834 ___

Wenn Sie Windows Vista / Server2k8 oder neuer verwenden, können Sie mit %code% einen symbolischen Link zu dem Ordner erstellen, der Ihre Anwendung enthält, und die Anwendung aus dem "symblic linked folder" starten und dann beim Update einen neuen Ordner erstellen , z.B "AppV2" und ändern Sie SymLink in diesen Ordner. Wenn der Benutzer das Programm das nächste Mal neu startet, startet er es aus dem neuen Ordner, ohne es zu bemerken.

Das Umbenennen offener Dateien ist IMMER eine schlechte Wahl!

Aber im Allgemeinen würde ich mir sowieso eine bessere Bereitstellungsstrategie überlegen, denn wenn Sie solche "Hacks" verwenden müssen, ist das immer eine chaotische Situation. Ich kenne Ihre Anwendung nicht, aber vielleicht wäre ClickOnce ein Startpunkt, weil Sie sie so konfigurieren können, dass sie bei jedem Start nach Updates sucht ...

    
___
3
Antworten

zufällige Zeichenfolge in PHP für den Dateinamen generieren [Duplizieren]

Wie würde ich eine zufällige Zeichenfolge für die Verwendung mit Dateinamen erstellen? Ich lade Fotos hoch und benenne sie nach Fertigstellung um. Alle Fotos werden in einem Verzeichnis gespeichert, so dass ihre Dateinamen eindeutig sein mü...
29.09.2013, 20:55
4
Antworten

Rename eine laufende ausführbare Datei (exe) [duplizieren]

Wir versuchen, Updates auf mehrere Server gleichzeitig zu übertragen, und mein Manager hat festgestellt, dass es möglich ist, laufende .exe-Dateien umzubenennen. Mit diesem Wissen will er eine laufende exe umbenennen und über eine neue Version...
14.07.2011, 15:09
1
Antwort

Inno Setup Datei beim Packen umbenennen

Ich versuche herauszufinden, wie ich beim Erstellen der Setup-Datei eine Datei im Dateibereich umbenennen kann. Ich möchte eine Local.config-Datei hinzufügen, sie jedoch als Local.config.tmp extrahieren Ich kann nicht herausfinden, warum Inno Se...
24.01.2012, 22:53