Visual Studio Не удалось записать в выходной файл '...\obj\Debug\Foo.Bar.dll "

У меня есть эта ошибка при компиляции большого решения С# в Visual Studio 2010. Каждый раз после компиляции мне пришлось удалить obj-папку одного из проектов, используемых этим решением. В противном случае я получил следующую ошибку:

Could not write to output file '...\obj\Debug\Foo.Bar.dll'
The process cannot access the file because it is being used by another process

Я искал решение по всему Интернету и фактически нашел/попробовал несколько из них.

Например: многие люди на форумах разработчиков предлагали не запускать компиляцию, а UserControl (в некоторых других источниках От) открывается конструктор.

Некоторые другие люди использовали сценарии предварительной сборки для удаления папки obj, это конкретное решение приемлемо, но если выпущенный проект является широко используемой библиотекой, его перекомпиляция приведет к перекомпиляции "родительских" проектов.

Ответ 1

Наконец, я обнаружил решение для этой VS2010 (SP1 тоже) "ошибка", и я хочу поделиться им с пользователями stackoverflow.

В моем случае проблема заключалась в том, что файл csproj был SELF-REFERENCING заблокированным файлом '...\obj\Debug\Foo.Bar.dll'. Сумасшедший, я знаю. Поэтому я решил эту неприятную проблему, удалив следующую строку из файла .csproj:

<Reference Include="Foo.Bar">
  <HintPath>obj\Debug\Foo.Bar.dll</HintPath>
</Reference>

Ответ 2

Вначале я нашел другое решение проблемы, поскольку VS, похоже, блокирует сборку в папке obj\debug. Я добавил в проект pre-build script, который исправил мою проблему.

del "$(ProjectDir)obj\*.*" /S /F /Q

Увидев ответ, данный Саларосом, это действительно проблема. Я создал новый usercontrol, который использует элемент управления сервера из другого проекта. По какой-то причине VS иногда создает самореференции для себя, когда вы просматриваете usercontrol в режиме разработки. Даже удаление самооценки фиксирует его до тех пор, пока VS не подумает о том, чтобы добавить ссылку снова. Не нашли точного шаблона для этой части.

PS: Я использую vs2012

Ответ 3

эта проблема произошла со мной, когда я:

открытая визуальная студия запустить отладку перейдите к c: и используйте очистку системы

попытайтесь построить снова,...

Вы найдете эту ошибку

Решение: закрытая визуальная студия очистить систему Перезапустить компьютер открыть визуальную студию в качестве администратора выбрать проект чистый перестроить

Он будет работать

Ответ 4

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