После загрузки библиотеки DLL с использованием LoadLibrary("file.dll")
визуальная студия также открывается и блокирует file.pdb
.Как заставить Visual Studio 2015 разблокировать файл .PDB после вызова FreeLibrary?
Проблема в том, что file.pdb
не блокируется даже после звонка FreeLibrary(...)
.
Необходимо перекомпилировать file.dll
и перезагрузить его еще раз (снаружи, вне МСВС, используя CL.exe
), но компиляция терпит неудачу, потому что file.pdb
по-прежнему заблокирован.
Как заставить Visual Studio 2015 освободить блокировку файлов?
Это настройка VS2015, она вынуждает отладчик использовать более старый механизм отладки. Используется в VS2013. Разумная настройка нового двигателя довольно затруднительна. Кто-то должен сообщить об ошибке на сайте connect.microsoft.com, я буду добровольцем. –
@HansPassant. Была обнаружена аналогичная ошибка, зарегистрированная для MSVS 2013, и она помечена как закрытая, как в «Не исправлена» https://connect.microsoft.com/VisualStudio/feedback/details/1026184/visual-studio-keeps-locking -the-pdb-file-even-after-the-dll-release-using-freelibrary. Поэтому я даже не потрудился. Также есть интересный комментарий от Andrew Hall @ MSFT: «К сожалению, отладчик Visual Studio никогда не поддерживал выгрузку pdb, когда двоичный файл выгружается из процесса, он всегда требовал, чтобы отладка была остановлена». Возможно, это было изменено? – JBeurer