5 Stimmen

Windows scheint den Überblick über .NET-Anwendungen zu verlieren

Wir haben eine .NET-Anwendung, die wir über ein MSI-Installationspaket an unsere Benutzer verteilen. Wir haben C++-Anwendungen, die jeden Morgen ausgeführt werden, um festzustellen, ob die Kopie der Anwendung des Benutzers veraltet ist, und wenn ja, ziehen wir die neue MSI herunter und installieren sie. Wenn die Anwendung noch läuft, müssen wir sie herunterfahren, damit wir die Aktualisierung durchführen können.

Unser Problem ist, dass es hin und wieder den Anschein hat, dass Windows unsere Anwendung "verliert". Es meldet dann nicht, dass der Prozess läuft, obwohl er läuft. Es erlaubt uns, die verwendete ausführbare Datei zu überschreiben oder sogar zu löschen, ohne die Anwendung zu beenden.

Vielleicht ist dies etwas, das häufig vorkommt - aber wir können nicht herausfinden, was los ist! Hat jemand einen Einblick in diese Situation?

Es scheint, als ob eine temporäre Kopie unserer Anwendung erstellt wird und das Programm von dieser Kopie aus gestartet wird. Aber wenn das der Fall ist, warum passiert es dann nicht immer?

EDIT: In unserem Programm verwenden wir die Funktion "EnumProcesses" aus dem Platform SDK, PSAPI.dll, um alle laufenden Prozesse aufzuzählen.

2voto

Sam Harwell Punkte 94511

Könnte es sein, dass entweder das Skript oder die Anwendung als 64-Bit-Programm läuft und das andere als 32-Bit-Programm? Wenn ja, könnte die Aktualisierungsprüfung auf 64-Bit-Rechnern am falschen Ort nach einer vorhandenen Anwendung suchen und sie daher als fehlend melden?

0voto

Justin Punkte 82143

Welchen Mechanismus verwenden Sie, um zu prüfen, ob der Prozess läuft oder nicht?

Versuchen Sie, mit einem Programm wie dem Prozess-Explorer herauszufinden, von welchem Pfad das ausführbare Image geladen wird - es sollte im Abschnitt "Module" aufgeführt sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X