2016-05-03 12 views
0

ausführen Ich habe ein Programm auf einem Server (zum Beispiel \\192.168.0.1\sharefolder\test.exe). Ich habe die Abkürzung von Programm in Clients eingefügt. Benutzer können das Programm über diese Verknüpfung ausführen. Wenn ich mein Programm in Server aktualisieren möchte, tritt ein Fehler auf "Datei in Verwendung" .. jetzt, wie kann ich alle Prozesse in Clients beenden, die mein Programm (per Verknüpfung) auf dem Server ausführen. Ich benutze diesen Code:Wie kann ich alle Prozesse in Clients, die ein Programm (per Verknüpfung) auf dem Server

foreach (var process in Process.GetProcessesByName("quartus_pgm")) 
{ 
     process.kill(); 
} 
//file.delete(); 

Aber dieser Code ist nicht genug, denn dieser Code nur Prozesse auf dem Server ausgeführt töten und noch kann ich das Programm nicht aktualisiert und der Fehler auftritt ..

Antwort

0

Mahyar, hallo !

Ich empfehle Ihnen, "Shadow Copying Assemblies" Mechanismus von .NET zur Verfügung gestellt. In wenigen Worten: 1. Sie haben 1 App (exe), die auf mehrere dlls referenziert (Bibliotheken mit allen Logik/UI/...). 2. Sie können dlls ersetzen, ohne die App (exe) zu beenden.

Für weitere Informationen können Sie dies MSDN article lesen.

Dieser Ansatz erfordert möglicherweise ein Refactoring Ihrer App.

+0

Vielen Dank für Ihre Lösung. – Mahyar