Я исправил эту ошибку следующим образом:
- Выберите все проекты в обозревателе решений слева.
- Щелкните правой кнопкой мыши любой из выбранных проектов и выберите «Свойства»
- Выберите «Все конфигурации» в раскрывающемся меню «Конфигурация».
- Выберите «Все платформы» в раскрывающемся меню «Платформа».
- Выберите «Свойства конфигурации» слева, затем «Общие».".
- Редактировать запись" Каталог вывода ".По умолчанию он имеет значение типа «$ (SolutionDir) $ (PlatformName) \ $ (ConfigurationName)».Измените это, чтобы указать на каталог выше $ (SolutionDir).Скажите, что ваш $ (SolutionDir) - «\ Code \ $ (ProjectName)», попробуйте установить «Выходной каталог» в «\ Code \ Build \ $ (ProjectName) \ $ (PlatformName) \ $ (ConfigurationName)»
- Отредактируйте запись «Intermediate Directory» и установите для нее значение «$ (OutDir)».Это помещает промежуточные файлы в то же место, что и запись «Output Directory».Этот шаг может быть необязательным, но он так настроен.
Я не уверен, почему VC2008 имеет эту проблему, но я предполагаю, что у него есть отдельный поток, который всегда сканирует файлы в $(SolutionDir) и случайным образом предотвращая их удаление.Когда у меня выходной каталог находился в $ (SolutionDir), я случайно получал ошибки, пытаясь удалить файлы во время сборки, и казалось, что это может произойти с любым файлом.Мои сборки потерпят неудачу в результате около 90% времени.Запуск VC с правами администратора, как это было предложено в комментариях ниже к исходному вопросу, не устранил проблему для меня и не заменил все права доступа к файлам, не запустил chkdsk / F и не перезагрузил компьютер.Я бы также предположил, что эта проблема постепенно ухудшается по мере того, как ваш проект становится все больше и сложнее.