Visual Studio блокирует выходной файл при сборке - PullRequest
77 голосов
/ 05 января 2010

У меня есть простое решение WinForms в VS 2010. Всякий раз, когда я его собираю, выходной файл (bin \ debug \ app.exe) блокируется, и последующие сборки терпят неудачу с таким сообщением, как "The process cannot access the file 'bin\Debug\app.exe' because it is being used by another process." Единственный способ построить проект - перезапускать VS после каждой сборки, что очень неловко.

Я нашел это старое сообщение в блоге http://blogs.geekdojo.net/brian/archive/2006/02/17/VS2005FileLocking.aspx - похоже, проблема действительно старая. Кто-нибудь знает, что здесь происходит, или хотя бы какой-нибудь обходной путь?

Обновление

На самом деле я не запускаю файл. Блокировка происходит после сборки, а не после отладки (то есть запуск VS - сборка - сборка - ошибка!) И я попытался отключить антивирус. Это не помогает.

Обновление 2

Process Explorer показывает загрузку файла devenv.exe (в DLL, а не в Handles). Кажется, что какой-то сбой во время сборки предотвратил выгрузку, но (первая) сборка завершается без каких-либо сообщений, кроме «1 успешно завершено, o не удалось» /

Ответы [ 16 ]

0 голосов
/ 17 августа 2017

Это решение, которое я узнаю

  1. Снимите флажок с процесса размещения Visual Studio в настройках проекта, как показано ниже

enter image description here

  1. Убей exe. это будет ваше applicationname.vshost.exe из taskmanager

enter image description here

  1. Теперь вы можете пересобрать приложение и запустить.

Примечание. Вы можете снова включить этот параметр без проблем.

0 голосов
/ 17 мая 2017

Я столкнулся с тем же, разрабатывая приложения xamarin в VS2017.

Оказалось, что Защитник Windows заблокировал exe / dll с помощью devenv.exe.

Вы можете перейти к Win Defender и добавить

devenv.exe
msbuild.exe

в список исключений процессов.

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

Закрытие Visual Studio, повторное открытие и перезагрузка самого последнего решения помогает решить эту проблему. (Visual Studio 2013 Ultimate)

0 голосов
/ 15 июля 2016

Если ваш $ (TargetPath) указывает на DLL, которая использует COM, убедитесь, что у вас есть конструктор по умолчанию. Не уверен, почему конструктор по умолчанию не выводится там. Добавление конструктора по умолчанию работало для меня в этом сценарии.

0 голосов
/ 09 апреля 2013

Единственное, что мне помогло, - это выйти из Visual Studio 2012, удалить папки BIN и OBJ для проекта, в котором возникли проблемы, и снова открыть Visual Studio.

Проблема решена ... До следующего раза.

0 голосов
/ 05 января 2010

Я создал новое пустое решение и добавил в него все старые файлы. Это как-то решило проблему.

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