Невозможно скопировать файл из obj \ Debug в bin \ Debug - PullRequest
45 голосов
/ 13 апреля 2010

У меня есть проект на C #, и я получаю эту ошибку каждый раз, когда пытаюсь скомпилировать проект:

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

Так что я должен закрыть процесс из диспетчера задач. Мой проект - только одна форма, и нет многопоточности.

Какое решение (без перезапуска VS или уничтожения процесса)?

enter image description here

Ответы [ 29 ]

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

@ Udpate: Со времени, когда я впервые опубликовал этот «ответ», я склоняюсь к другому объяснению проблемы. С тех пор эта проблема возникала все чаще и за пределами Visual Studio - при попытке скопировать файл .exe из одной папки в другую. Хотя в первую очередь Windows не позволяла копировать (!) Файл .exe (сначала он запрашивал у меня административные права, но впоследствии все равно отказывался копировать его), он все равно обнаруживался в проводнике. Но через некоторое время - без каких-либо дальнейших действий, он волшебным образом исчез. Точно так же, как проблема в вопросе, кажется, решает сама себя через некоторое время. Итак, я предполагаю, что проблема больше связана с отложенным удалением выходного файла проекта и меньше с ошибкой VS. Я прошу прощения за любые необоснованные подозрения. : |

Это дает поиску решения совершенно другое направление, я полагаю. Нашел эту ссылку и сообщит о прогрессе:

https://superuser.com/questions/234569/windows-7-delayed-file-delete

=============================================== =========================

Это известная ошибка в VS. Я обнаружил это очень часто - в основном в VS2010 (с / без SP1). Рекомендуется несколько «решений». Вот некоторые из них, которые мне помогли:

  1. Удалите файл .suo из каталога вашего проекта. В конце концов нужно создать все ваше решение с нуля.
  2. Закрыть любые конструкторы форм Windows могут оставаться открытыми.
  3. Используйте сценарий предварительной сборки, который удаляет цель из выходного каталога.
  4. Отключить процесс размещения VS.

Ничто из этого не исправляет ошибку. Но это может вернуть VS в рабочее состояние - до тех пор, пока MS не предоставит истинное решение (если будет).

http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/cea5e4b2-5b33-453c-bffb-8da9f1a1fa4a

http://social.msdn.microsoft.com/Forums/en/vbide/thread/cd12f3c7-de96-4353-adce-23975e30933f

19 голосов
/ 11 мая 2013

Я могу подтвердить, что эта ошибка существует и в VS 2012 Update 2.

Мой обходной путь:

  1. Чистый раствор (и больше ничего не делать)
  2. Закрыть все открытые документы / файлы в решении
  3. Выход VS 2012
  4. Выполнить VS 2012
  5. Построение решения

Я не знаю, имеет ли это отношение или нет, но мой проект использует «Связанные» в файлах классов из других проектов - это проект Silverlight 5, и единственный способ поделиться классом, совместимым с .NET и SL, связать файлы.

Что нужно учитывать ... ищите связанные файлы между проектами в одном решении.

17 голосов
/ 08 июня 2015

Это должно работать.

Перейти к свойствам вашего проекта. Внутри Build Events, в командной строке Pre-build event, добавьте эти две строки кода:

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
9 голосов
/ 21 января 2014

Если вы загляните в каталог obj и не увидите свой .exe, возможно, что Avast! или другой антивирус удаляет его. Я бы на самом деле увидел, что .exe появляется, а потом исчезает. Как только я отключил Avast !, проблема решена.

VS2010 сгенерировал «Не удалось скопировать файл obj \ x86 \ Debug \ [file] .exe», так как он не был найден.

9 голосов
/ 13 апреля 2010

Настоящая проблема не в ошибке, которую вы получаете; Дело в том, что приложение не убирает после себя.

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

6 голосов
/ 02 сентября 2012

Это происходит потому, что [yourProjectName].exe процесс не закрывается после завершения отладки.

Существует два решения этой проблемы.

  1. Каждый раз, когда вы вносите изменения в приложение, переходите к диспетчеру задач -> Процессы -> [yourProjectName] .exe, завершайте этот процесс. Вы должны завершать этот процесс каждый раз, когда вносите изменения в систему.

  2. Добавьте кнопку выхода в вашем приложении для выхода из окна и добавьте эти строки для события щелчка

    System.Diagnostics.Process.GetCurrentProcess().Kill();
    Application.Exit();
    
5 голосов
/ 21 октября 2015

Мне пришлось зайти в проводник Windows и удалить папку bin / debug, а также папки obj / debug.Затем я очистил и перестроил проект.

3 голосов
/ 13 февраля 2015

Это случилось со мной на VS 2010 и Win 7 .. Дело:

  • Я не могу перестроить с помощью диспетчера конфигурации отладки, но я могу перестроить с помощью диспетчера конфигурации выпуска

debug

Что я пробовал:

  • Проверьте тип моей учетной записи на панели управления - учетная запись пользователя -> Моя учетная запись - Администратор

cpanel

  • Установить папку bin не только для чтения

not read only

  • Добавить защиту в папку bin для каждого пользователя

everyone

  • остановка сервера iis

iis stop

  • Остановите антивирус, проверьте нелепо работающую программу с помощью диспетчера задач и ProcessExplorer

  • запустить VS от имени администратора

Если все так еще не работает.

Тогда последний способ попробовать:

  • закрыть решение
  • закрыть визуальную студию
  • Пуск - выключение
  • нажмите кнопку питания, чтобы включить компьютер
  • войдите в свою учетную запись с привилегиями администратора для типа пользователя
  • вновь открыть решение
  • восстановление
  • так работает. Все люди называют это Сброс компьютера
3 голосов
/ 14 марта 2013

Увидев аналогичную ошибку в визуальных студиях 2012 из ниоткуда. Я обнаружил, что, перейдя в корневую папку проекта и щелкнув по нему правой кнопкой мыши, я снял флажок только для чтения, и эта ошибка исчезла. Очевидно TFS иногда делает папку только для чтения. Надеюсь, это поможет любому с подобной проблемой. Спасибо

2 голосов
/ 11 июня 2016
  1. Закрыть ваш проект
  2. Удалить папку bin

я нахожу это работой :)

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