Visual Studio блокирует выходной файл на сборке

У меня есть простое решение 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

Проводник процесса показывает devenv.exe, загружавший файл (в DLLs, не в Дескрипторах). Кажется, что некоторый незначительный сбой во время сборки предотвратил разгрузку, но (первая) сборка завершается без любых сообщений другой тогда "1 следовавший, o отказавший" /

79
задан Nevermind 5 January 2010 в 08:56
поделиться

4 ответа

[

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

]
-8
ответ дан 24 November 2019 в 10:18
поделиться

А как же вирусные сканеры на вашем компьютере? Вы видите какие-нибудь процессы, которые управляют вашим файлом (используйте Проводник процессов , чтобы это выяснить)?

Может быть, в списке процессов видно "app.exe", т.е. последняя отлаженная вами версия все еще запущена? Когда вы разрабатываете приложения, которые имеют несколько потоков, это может произойти, если вы не присоединяете все из них.

.
3
ответ дан 24 November 2019 в 10:18
поделиться

Я видел это либо на жадном программном обеспечении для сканирования вирусов, либо если app.exe не закрывается должным образом. Убедитесь, что процесс все еще не запущен.

3
ответ дан 24 November 2019 в 10:18
поделиться

Имел такую же проблему, но нашел решение (спасибо Keyvan Nayyeri):

Но как это решить? Существуют различные способы в зависимости от типа вашего проекта, но одно простое решение, которое я рекомендую разработчикам дополнений Visual Studio - это добавить простой код в события сборки проекта.

Вы можете добавить следующие строки кода в командную строку события предварительной сборки вашего проекта.

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
69
ответ дан 24 November 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: