У меня есть приложение, которое должно взаимодействовать с неуправляемой и откровенно глючной DLL.
Я компенсировал это, заставив свое приложение проверять всевозможные ошибки при запуске DLL, такие как тайм-аут в случае, если DLL вошла в бесконечный цикл.
Я пытаюсь проверить эту обработку в своем приложении, поэтому я намеренно закодировал DLL, которая намеренно входит в бесконечный цикл.
В моем модульном тесте я хочу переименовать исходную DLL, скопировать в свою «сломанную» DLL, запустить тест, посмотреть, как работает код тайм-аута, затем удалить сломанную DLL и заменить исходную DLL.
Однако в моем методе TearDown я не могу удалить DLL, получая исключение UnauthorizedAccessException. Я предполагаю, что это связано с тем, что nUnit все еще каким-то образом «открыт» DLL.
Как заставить nUnit выпустить DLL?