Je suis le chargement d'une DLL par le Système.De la réflexion.De l'assemblée.LoadFile et de réfléchir sur ses membres dans un plugin-esque système.
J'ai besoin d'être en mesure de mettre à jour ou remplacer ces DLL lorsque le système est en cours d'exécution, mais il semble que, après l'appel Système.De la réflexion.De l'assemblée.LoadFile le fichier est verrouillé par la suite.
Personne ne sait d'une façon de déverrouiller le fichier?
J'ai lu à propos du chargement du fichier dans un autre domaine d'application? est-il des pièges à cette approche?
Réponses
Trop de publicités?Si vous utilisez ce:
System.Reflection.Assembly.Load(System.IO.File.ReadAllBytes(path))
Il ne sera pas verrouiller le fichier.
Modifier
Bien que cela fonctionne, il n'est pas la meilleure solution, mais la meilleure façon de le faire est beaucoup plus complexe (trop pour il suffit de coller tout le code ici pour ça).
J'ai créé un dépôt sur Github ici, avec tout le code pour faire cela correctement:
Chargement des Assemblages sans Verrouillage en utilisant l'Ombre de la Copie.
Sven Hecht
Points
892