2016-05-03 3 views
0

J'ai un programme sur un serveur (par exemple \\192.168.0.1\sharefolder\test.exe). Je mets le raccourci du programme dans les clients. Les utilisateurs peuvent exécuter le programme par ce raccourci. Quand je veux mettre à jour mon programme dans le serveur, il se produit une erreur "fichier en cours d'utilisation" .. maintenant, comment puis-je tuer tous les processus dans les clients qui exécutent mon programme (par raccourci) sur le serveur. Je utiliser ce code:Comment puis-je tuer tous les processus dans les clients qui exécutent un programme (par raccourci) sur le serveur

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

Mais ce code ne suffit pas parce que ce code ne tuent que les processus en cours d'exécution sur le serveur et encore je ne peux pas mettre à jour le programme et l'erreur se produit ..

Répondre

0

Mahyar, bonjour !

Je vous recommande d'utiliser le mécanisme "Assemblages de clichés instantanés" fourni par .NET. En quelques mots: 1. vous avez 1 app (exe) qui référencé sur plusieurs DLL (bibliothèques avec toute la logique/UI/...). 2. vous pouvez remplacer les DLL sans arrêter l'application (exe).

Pour plus d'informations, vous pouvez lire ceci: MSDN article.

Cette approche peut nécessiter de faire un refactoring de votre application.

+0

Merci beaucoup pour votre solution. – Mahyar