J'ai une application qui doit s'interfacer avec une DLL non gérée et franchement boguée.
J'ai compensé cela en faisant en sorte que mon application vérifie toutes sortes de conditions d'erreur lors de l'exécution de la DLL, des choses comme le délai d'attente au cas où la DLL serait entrée dans une boucle infinie.
J'essaie de tester cette gestion dans mon application, et j'ai donc délibérément codé une DLL qui entre volontairement dans une boucle infinie.
Dans mon test unitaire, je veux renommer la DLL d'origine, copier ma DLL "cassée", exécuter le test, voir le code timeout fonctionner, puis supprimer la DLL cassée et remplacer la DLL d'origine.
Cependant, dans ma méthode TearDown, je ne peux pas supprimer la DLL, car j'obtiens une exception d'accès non autorisé. Je suppose que c'est parce que nUnit a toujours la DLL "ouverte" d'une manière ou d'une autre.
Comment faire en sorte que nUnit libère la DLL ?