VisualStudio2010 Отладка - процесс не может получить доступ к файлу ... потому что он используется другим процессом - PullRequest
49 голосов
/ 22 апреля 2010

Я не могу отладить приложение WinForms C # с помощью выпущенной версии Visual Studio 2010 Prof.

Я получаю следующее сообщение об ошибке после второго запуска отладки.

Ошибка 9 Не удалось скопировать файл "obj \ x86 \ Debug \ Arrowgrass Reports.exe" в "bin \ Debug \ Arrowgrass Reports.exe". Процесс не может получить доступ к файлу «bin \ Debug \ Arrowgrass Reports.exe», так как он используется другим процессом.

Я пытался выполнить предварительную сборку сценария, чтобы попытаться удалить этот файл, но он заблокирован Visual Studio.

В сети есть несколько ссылок на это, так что это известная проблема. У кого-нибудь есть исправление или эффективный обходной путь?

Ответы [ 30 ]

0 голосов
/ 05 марта 2014

Моя проблема заключалась в том, что Outlook 2010 (outlook.exe) использовал тот же порт, что и мой проект ASP.NET MVC с IIS express.

Решение: закройте outlook.exe, запустите решение и снова откройте outlook (чтобы он использовал другой порт).

Надеюсь, это кому-нибудь поможет, потому что я получил такое же сообщение об ошибке, как описано в этом разделе.

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

Просто отключите хостинг Visual Studio в режиме отладки, запустите проект, снова включите его и запустите проект.

Откройте проект в Visual Studio.

. В меню «Проект» выберите «Свойства».

. Перейдите на вкладку «Отладка».

. Снимите флажок Включить процесс размещения Visual Studio

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

Моя проблема началась после создания пользовательского элемента управления и перетаскивания его в палитру инструментов для использования в формах проектирования. Сначала появилось предупреждение о наличии избыточности между исходным файлом пользовательского элемента управления (.cs) и исполняемым файлом проекта (.exe). При выполнении / отладке появилась ошибка: не удалось получить доступ к (.exe), поскольку он используется (и это было правдой).

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

Итак: просто проверьте ссылки и удалите самостоятельную ссылку на проект.

0 голосов
/ 30 ноября 2012

Добавление следующего к событию Pre-build общего dll работало для меня:

if exist "$(TargetPath).locked*" del "$(TargetPath).locked*"
set exitprebuildfor$(ProjectName)=
for /l %%a in (1,1,10) do (
  if defined exitprebuildfor$(ProjectName) goto :ok
  if not exist "$(TargetPath).locked%%a" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked%%a" & set exitprebuildfor$(ProjectName)=1)
:ok
set exitprebuildfor$(ProjectName)=

Он основан на решении, указанном здесь , но вместо того, чтобы просто переименовать dll в .locked, он пытается переименовать его в .locked1, locked2. Используя 10, я обычно сталкиваюсь с проблемой один раз в день, но можно использовать значение муравья.

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

Кажется, я только что нашел виновника и решение.

Зайдите в службы и остановите и отключите службу "Windows Search".

Это решило проблему для меня сейчас.

0 голосов
/ 14 августа 2012

Для меня решением было изменить стартовый проект на dll (проблема возникает только в режиме отладки при наличии приложения в качестве стартового проекта).Если ваше решение содержит несколько проектов (и оно будет содержать файл .dll, иначе проблема не возникнет), переключитесь на этот файл .dll, без .vshost.exe, без проблем.

ТакжеУничтожение .vshost.exe у меня не сработало, так как сразу после повторного запуска он заблокировал .dll.

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

Небольшая статья по этой проблеме (и мое решение)

Как "очистить" ваши ссылки в растворе

0 голосов
/ 03 февраля 2017

Удалите папку Bin и запустите приложение.Это сработало для меня.:)

0 голосов
/ 21 октября 2013

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

0 голосов
/ 30 июня 2017

Для Windows Project

Процесс размещения Visual Studio может содержать указатель исполняемого файла. Чтобы остановить экземпляр хоста, откройте Project properties и перейдите на вкладку Debug. Теперь снимите флажок Enable the Visual Studio hosting Process и снова установите флажок для отладки.

Для веб-проекта

IIS может содержать указатель файла. Перезапуск IIS может решить проблему.

0 голосов
/ 06 ноября 2013

Остановите службу IIS и попробуйте собрать ее заново, или, если вы можете позволить себе перезагрузить компьютер, попробуйте.Работал для меня в обоих направлениях.

Приветствия

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