J'essaie de déployer de nouvelles copies de ma DLL vers le GAC sur les serveurs distants, mais je dois identifier si les processus en cours d'exécution ont une copie chargée de la DLL. Je remplace - je voudrais les redémarrer, ou au moins dire à l'utilisateur. Par exemple, Biztalk semble charger les DLL dont il a besoin la première fois qu'il est utilisé, puis les remplacer conserve l'ancienne copie en mémoire jusqu'à ce que les instances hôtes soient redémarrées - ce que je pourrais facilement faire dans le cadre de mon déploiement .Voir si une application a une DLL du GAC chargée
Existe-t-il un moyen de dire à l'aide de .NET quels processus ont chargé une DLL particulière à partir du GAC?
MISE À JOUR:
une enquête plus poussée montre que les deux Process Explorer a cette fonctionnalité, et un autre outil de Sysinternals, ListDLL, fait exactement ce que je veux être en mesure de le faire. Je voudrais savoir comment ils le font, puisque j'aimerais reproduire cette fonctionnalité dans mon application sans avoir à inclure ListDLL à l'écran (si cela est même autorisé dans la licence).
J'aimerais le faire par programmation - puisque Process Explorer le fait, cela signifie que cela peut être fait, ce qui est encourageant. Des idées comment ils font? – SqlRyan
@rwmnau Réponse mise à jour. –