Сбои сборки Visual Studio: не мог скопировать EXE-файл от obj\debug до bin\debug

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


Это - вопрос, который задают прежде, и здесь на Переполнении стека и других местах, но ни одно из предложений я нашел настолько далеко, помог мне, таким образом, я просто должен попытаться задать новый вопрос.

Сценарий: у Меня есть простое приложение Windows Forms (C#.NET 4.0, Visual Studio 2010). Это имеет несколько основных форм, которым наследовалось большинство других форм, это использует Платформу Объекта (и ПОСТЕПЕННО классы) для доступа к базе данных. Ничто не полагает, никакая многопоточность или что-либо.

Проблема: Все были в порядке некоторое время. Затем все внезапно, Visual Studio не удалось создать, когда я собирался запустить приложение. Я получил предупреждение, "Не могущее удалить файл '... bin\Debug \[ProjectName].exe'. Доступ к пути '... bin\Debug \[ProjectName].exe' запрещен". и ошибка, "Не могущая скопировать файл 'obj\x86\Debug \[ProjectName].exe' к 'bin\Debug \[ProjectName].exe'. Процесс не может получить доступ к файлу 'bin\Debug \[ProjectName].exe', потому что он используется другим процессом". (Я получаю и предупреждение и ошибку, когда выполнение Восстанавливает, но только ошибка при выполнении Сборки - не думает, что это релевантно?)

Я понимаю превосходный, что говорят предупреждающее сообщение и сообщение об ошибке: Visual Studio, очевидно, пытается перезаписать EXE-файл, в то время как это то же время имеет блокировку на нем по некоторым причинам. Однако это не помогает мне найти решение проблемы... Единственная вещь я нашел работу, состоит в том, чтобы закрыть Visual Studio и запустить ее снова. Создание и запуск затем работают, непока я не вношу изменение в некоторых формах, затем я имею ту же проблему снова и должен перезапустить... Довольно печальный!

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

  • Создание нового чистого решения и просто копирует файлы со старого решения.
  • Добавление следующего к следующему к событию проекта перед сборкой:

    if exist "$(TargetPath).locked" del "$(TargetPath).locked"
       if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
    
  • Добавление следующего к свойствам проекта (.csproj файл):

    true
    

Однако ни один из них не работал на меня, таким образом, можно, вероятно, видеть, почему я начинаю становиться немного расстроенным. Я не знаю, где еще посмотреть, таким образом, я надеюсь, что у кого-то есть что-то, чтобы дать мне! Действительно ли это - ошибка в VS, и раз так существует ли патч? Или я сделал что-то не так, у меня есть циклическая ссылка или подобный, и раз так как я мог узнать?

Любые предложения высоко ценятся :)

Обновление: Как упомянуто в комментарии ниже, я также проверил Проводник Процесса использования, что это на самом деле - Visual Studio, которая блокирует файл.

190
задан Grant - REINSTATE MONICA 27 September 2019 в 08:56
поделиться