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

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

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

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

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

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

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

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

Ответы [ 23 ]

1 голос
/ 27 июля 2016

Просто проверьте ссылки и удалите собственную ссылку на проект.

Объяснение: Моя проблема началась после создания настраиваемого элемента управления и перетащите его на палитру инструментов для использования в формах проектирования.Сначала появилось предупреждение о наличии избыточности между исходным файлом пользовательского элемента управления (.cs) и исполняемым файлом проекта (.exe).При выполнении / отладке появилась ошибка: невозможно получить доступ к (.exe), потому что он используется (и это было правдой).

Я буквально удалил весь исходный код относительно пользовательского элемента управления, и проблема все еще осталасьпока я не проверил ссылки, и он ссылался сам, чтобы иметь возможность "получить" прежний пользовательский элемент управления.Я удалил ссылку и сделал !!

1 голос
/ 26 июня 2013

Для меня это была служба Windows, которая была установлена ​​и запущена. Как только я остановил его, сборка прошла успешно.

1 голос
/ 23 декабря 2014

Запустите эту команду из поля «Выполнить»:

net stop iisadmin /y

, а затем

iisreset

работал на меня. против 2003

0 голосов
/ 01 октября 2015

У меня была такая же проблема.изменение конфигурации отладки / выпуска не помогло.по крайней мере, без построения между ними.

в моем решении (winform) это было решено открытием основной формы winform в конструкторе.переключение на код (F7).Затем закройте код, закройте конструктор winform и пересоберите все (ctrl-shift-B).Это сработало для меня.

кажется, что какой-то дескриптор из приложения winform (в котором работает фоновый работник) все еще имел дескриптор файла на некоторых других используемых библиотеках.

0 голосов
/ 05 июня 2017

В моем случае было запущено несколько процессов vstest (с разными именами, но все они содержали строку vstest).Я должен был прекратить их в taskmgr.

0 голосов
/ 28 октября 2016

У меня два экземпляра Visual Studio открыли одно и то же решение.

0 голосов
/ 19 марта 2013

Для меня сработало перезапуск IIS

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

Возникла такая же проблема, поэтому открыл диспетчер задач (так как в ошибке говорилось, что он используется процессом), был запущен мой exe-файл.Я закончил задание, после этого оно вернулось к норме

0 голосов
/ 12 декабря 2017

Та же ошибка, решаемая путем обновления пакетов поддержки Google Nuget

0 голосов
/ 26 сентября 2018

Когда я закончил процесс .Net Core Host, все выстроилось нормально.Мне не нужно было закрывать Visual Studio или что-либо менять.

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