Я работаю над решением, состоящим из 8 .NET проектов. Поскольку я практикую TDD, мне приходится очень часто перекомпилировать свое решение. В последнее время я получаю следующую ошибку примерно каждый раз при попытке компиляции:
Ошибка 2 Невозможно скопировать файл
"obj \ Debug \ Zeiterfassung.Tests.dll" в
"Bin \ Debug \ Zeiterfassung.Tests.dll".
Процесс не может получить доступ к файлу
'Bin \ Debug \ Zeiterfassung.Tests.dll'
потому что он используется другим
процесс.
Zeiterfassung.Tests.dll - это dll, сгенерированная одним из моих проектов (это проект модульного тестирования). Это всегда эта dll, которая не может быть скопирована и вызывает ошибку. Все остальное работает нормально в 100% случаев.
Примерно в 9/10 раз я могу "решить" проблему, перекомпилировав свое решение снова. Но когда проблема становится действительно серьезной, проект просто не будет успешно компилироваться, независимо от того, как часто я пытаюсь перезапустить IDE.
Я использовал Microsoft.exe handle.exe, чтобы выяснить, какой процесс блокирует DLL, и это devenv.exe. Я также попытался удалить DLL вручную, и ее невозможно удалить, пока я не перезапущу IDE.
И последнее, но не менее важное: я попытался добавить <GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
в свой проект, как это предлагалось на другом форуме, но это не помогло.
Пожалуйста, помогите! Эта проблема действительно начинает сводить меня с ума.
Редактировать: Я мог бы также добавить, что я удостоверился, что мои модульные тесты закончены, когда возникает эта проблема. Тем не менее, DLL остается заблокированным. Я запускаю свои тесты через проводник тестов Resharper.