Ошибка сборки: «Процесс не может получить доступ к файлу, потому что он используется другим процессом» - PullRequest
77 голосов
/ 27 февраля 2011

У меня есть приложение на C # webforms, которое до сегодняшнего дня работало просто плавно.

Теперь сегодня, внезапно, каждый раз, когда я пытаюсь запустить приложение, я получаю блокировку файлаошибка:

Невозможно скопировать файл "obj \ Debug \ MyProject.exe" в "bin \ Debug \ MyProject.exe".Процесс не может получить доступ к файлу «bin \ Debug \ MyProject.exe», так как он используется другим процессом.

Поиск ошибки не дает ничего, кроме очевидного, то есть VS считает,файл заблокированИ определенно Visual Studio сама блокирует файл, потому что, когда я закрываю VS и снова открываю его, проект выполняется нормально - в первый раз.Когда я пытаюсь запустить его второй раз, я получаю ошибку блокировки файла.

Закрытие VS и повторное открытие каждый раз, когда я хочу запустить приложение, не является приемлемым решением!Как узнать, что блокирует файл, и предотвратить его блокировку?

РЕДАКТИРОВАТЬ: Еще одно интересное открытие: мне даже не нужно запускать приложение.Простая компиляция вызывает блокировку файла;Я не могу скомпилировать два раза подряд!

Эта проблема относится к одному проекту в моем решении.Все остальные проекты работают нормально и могут выполняться столько раз, сколько мне нравится.Только этот проект заперт.

Ответы [ 23 ]

0 голосов
/ 15 декабря 2015

Недавно столкнулся с этой проблемой при попытке создать решение, над которым я работаю (не только в Winforms Proj).
В дополнение к ошибке build, я заметил, что проекты очистки будут тихо проваливаться (проверка папки binпоказал, что файлы на самом деле не были удалены), и закрытие Visual Studio не завершило процесс devenv - скорее, это привело к его аварийному завершению.Процесс восстановления Windows затем перезапустил бы Visual Studio.

После некоторых проб и ошибок я обнаружил, что проблемы возникали со мной только при открытии решения из меню «Недавние» при запуске VS.
Открытие решения из File >> Open >> Project/Solution показало, что оно работает как обычно.

В настоящее время не знаю, почему - буду продолжать изучать это, но пока, по крайней мере, я могу работать!

0 голосов
/ 14 июня 2019

Для тех, кто разрабатывает в VS с Docker, перезапустите Docker для службы Windows, и проблема будет решена немедленно.

Перед перезапуском docker я попробовал все упомянутые ответы, не нашел работающий процесс msbuild.exe, также попытался перезапустить VS безрезультатно, работал только перезапуск docker.

0 голосов
/ 27 февраля 2011

Как настроено ваше веб-приложение?Работает ли он под Cassini (веб-сервер в трее) или IIS?

Хотя это не должно происходить нормально.Я думаю, что ProcessExplorer может сказать вам, какие файлы заблокированы процессом.Если не обработчик процессов, то один из других инструментов sysinternals.

Одна вещь, которую нужно попробовать даже перед загрузкой одного из инструментов SI, - это остановить веб-сервер Cassini и посмотреть, освобождает ли он файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...