Невозможно скопировать файл - доступ к пути запрещен

Я использую Visual Studio 2005. После взятия кода из системы управления версиями приложение c # .net работает правильно. Но после внесения некоторых изменений при сборке я получаю следующую ошибку:

Ошибка 383 Невозможно скопировать файл «.. \ root \ leaf \ Bin \ Debug \ test.Resources.xml» в «Bin \ Debug \ test.Resources.xml». Доступ к пути «Bin \ Debug \ test.Resources.xml» запрещен. li.rollmodel

Кто-нибудь знает, почему возникает эта проблема?

Изменить. Я вижу, что вся папка с исходным кодом моего проекта предназначена только для чтения, и я не могу удалить свойство только для чтения.

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


person ricky    schedule 20.08.2011    source источник
comment
Это на сетевом ресурсе? Есть ли у вас административный доступ к вашей машине? Этот вопрос может быть лучше подходит для serverfault или суперпользователя.   -  person arunkumar    schedule 20.08.2011
comment
нет, я использую свой компьютер, у меня есть административный доступ   -  person ricky    schedule 20.08.2011
comment
Я решил эту проблему, вручную скопировав файл из одного места в требуемое, возможно, проблема связана с MSBUILD с файлом только для чтения   -  person ricky    schedule 20.08.2011


Ответы (44)


Я решил эту проблему, удалив спорные файлы из папки bin и перестроив проект.

person DiligentKarma    schedule 05.04.2012
comment
старый пост, я знаю, но у меня была такая же проблема только сейчас. Убедитесь, что VS также закрыт, поскольку в некоторых случаях он запрещает доступ к удалению папки. - person Eon; 21.06.2013
comment
Работал в прошлый раз, когда у меня была эта проблема, но теперь НЕТ. Я разрешил всем все права доступа к папке bin, но безрезультатно. - person Dalibor; 09.09.2016
comment
@Krohn, пытаясь построить из командной строки, ваше решение - единственное, что вам нужно сделать. - person Jason P Sallinger; 15.09.2016
comment
У меня было подобное исправление. Я решил это, удалив исходный код пакета (он же пакеты \ ‹имя проблемного пакета›) - person Dan Csharpster; 20.01.2017
comment
Небольшое примечание: сначала я не понял, что мне нужно удалить эти файлы в выходной папке основного проекта, а не в выходной папке dll. Итак, предупреждение здесь :) - person Piero Alberto; 01.03.2017
comment
У меня это тоже сработало! Visual Studio 2017 Enterprise, вы сэкономили мне столько времени ради чего-то такого простого. - person Sam Bunting; 28.07.2017
comment
В моем случае даже закрытия VS было недостаточно, чтобы освободить папку и позволить мне удалить ее - ProcessExplorer показал, что VBCSCompiler.exe все еще использует его. В этом случае выход из Windows и вход в нее (или просто прекращение процесса) помогли мне восстановить решение и заставить все снова работать. - person S. Jensen; 15.09.2017
comment
в моем случае причина, по которой эта папка и решение превратились в ReadOnly, а впоследствии у VS возникли проблемы с их созданием, заключалась в том, что какой-то файл не синхронизировался с GoogleDrive и каким-то образом был заблокирован этим процессом. Поэтому для правильной перестройки мне пришлось закрыть GoogleDrive, и он собрался нормально. - person konrad; 21.09.2017
comment
Не работал в VS2017, но я не получаю этих ошибок при сборке в режиме выпуска. - person S52; 20.10.2017
comment
Я обнаружил, что в этом виноват Bitdefender Antivirus Free. - person Warwick; 08.12.2017
comment
Использование Visual Studio 2017 с Dropbox. Пришлось переименовать папку bin в bin_old в оскорбительном проекте, а затем позволил мне перестроить. - person Brian; 17.12.2017
comment
Просто сообщаем миру, что по состоянию на 3 сентября 2019 г. это все еще ошибка, и это все еще рабочее решение. Спасибо, парень, сэкономил мне кучу времени. - person SomeNerdAtWork; 03.09.2019
comment
Мне не удалось переименовать папку Fonts в font в проекте blazor wasm. после удаления папки bin я могу. - person M Komaei; 06.06.2021

Просто убедитесь, что папка НЕ ​​предназначена только для чтения, и перестройте решение.

person Wahid Bitar    schedule 16.07.2014
comment
Я пытаюсь снять флажок «Только для чтения», залитый зеленым цветом. Когда я нажимаю «Применить», а затем «ОК», а затем снова проверяю свойства этой папки, я снова вижу в предыдущем состоянии (снова с флажком «Только для чтения», заполненным зеленым цветом). У кого-нибудь есть решение по этому поводу? - person Vikram; 30.07.2015
comment
Также убедитесь, что файл не заблокирован. В моем случае файл находился в общей папке, и кто-то другой его открыл. - person Dan Bechard; 01.10.2015
comment
Закройте Visual Studio перед удалением атрибута только для чтения. Поскольку указанный файл может использоваться (заблокирован) - person Gautam Jain; 07.11.2016
comment
Создал расширение Visual Studio для очистки атрибутов ReadOnly и Hidden у dll, которые блокируют сборку. UnBlockDllExtension: marketplace.visualstudio.com/ - person vrnithinkumar; 21.02.2017

Я решил эту проблему: закройте Visual Studio, откройте ее снова и загрузите решение, перестройте свое решение. Моя проблема возникла при использовании TFS и VIsual Studio 2010.

person jordenysp    schedule 18.04.2013
comment
Добавьте ту же проблему в VS2013. Классический кейс The IT Crowd. Здравствуйте, это ОНО, вы пробовали выключить и снова включить? - person Maxime Rouiller; 17.06.2014
comment
Тот же сценарий: TFS и VS 2010. Та же проблема. То же решение. +1 - person ajeh; 12.04.2016
comment
Это произошло и на VS2015: p - person Yoo Matsuo; 10.03.2017
comment
И то же самое в VS2017 - person arame3333; 30.05.2017
comment
Я уже сошел с ума, пытаясь исправить это, оказался старый добрый метод, если что-то не работает, перезагрузите его, работает нормально - person Mykhailo Seniutovych; 13.06.2017

Убить процесс VBCSCompiler.exe и перестроить.

person MuriloKunze    schedule 15.08.2017
comment
Это то, что решило это для меня. Спасибо добрый незнакомец: D - person Morsus; 10.10.2017
comment
да, вот оно. - person kal kokah; 27.12.2017
comment
Большое спасибо, добрый незнакомец! : D - person Agent007; 12.03.2018
comment
когда-то это срабатывало для меня не всегда, я должен сказать, что это решит часть этой проблемы, есть еще что-то, что вызывает эту проблему - person Amit Bisht; 26.09.2018
comment
Попробуйте это, также это может помочь вам stackoverflow.com/a/12740768/2445111 - person Amit Bisht; 26.09.2018

Я тоже столкнулся с этой проблемой.

Сначала проверьте, сопоставили ли вы папку bin и obj с программой Source Control.

Это может превращать ваши файлы из папок с двоичными файлами в архивы только для чтения, что делает невозможным перезапись их для Visual Studio при компиляции кода.

Пойдите и удалите сопоставление из этих папок, проверьте изменения и попробуйте еще раз.

Моя проблема возникла при использовании TFS (Team Foundation Server) и Visual Studio 2010.

Надеюсь, это кому-то поможет.

person Heitor Corrêa    schedule 08.07.2012
comment
Я просто хотел добавить, что ответ Heitorolecarte устранил мою проблему, и это может произойти с Visual Studio 2012 и TFS2010. - person Rodney; 24.09.2012

Запустите Visual Studio от имени администратора

person Alejandro Haro    schedule 26.06.2013
comment
Примечание: вот короткий и простой способ всегда работать от имени администратора по умолчанию stackoverflow.com/questions/12257110/ - person wmebane; 07.11.2017
comment
Этот ответ сказал мне достаточно, что я знал, что нужно просто добавить разрешение на запись для пользователей в моей выходной папке - и это мгновенно решило мою проблему (которая заключалась в том, что я не мог опубликовать даже в первый раз). - person X Goodrich; 26.10.2019
comment
Какое безумно опасное предложение. Не только безответственно советовать кому-либо достаточно неуверенному в том, что происходит, чтобы обойти безопасность, создание в качестве администратора скроет любые проблемы с развертыванием вашего кода. - person Paul Childs; 16.02.2021

В моем случае файл заблокировал антивирус.

person Claudiu Constantin    schedule 17.12.2016
comment
BitDefender 6.2 здесь - person JOG; 28.12.2017
comment
Здесь используется Avast - person h-rai; 04.11.2020
comment
Avast для меня тоже. - person dc922; 03.02.2021

Я использую Visual Studio 2013. Я сталкивался с этой проблемой 2 раза:

  1. В первый раз я запускал Visual Studio без прав администратора. Итак, я закрыл VS и запустил его, используя параметр «Запуск от имени администратора». Это решило мою проблему.

  2. Во второй раз я перезапускал VS много раз, каждый раз проверяя, что я запускаю его как администратор. Кроме того, я много раз перестраивал решение. Но, несмотря на это, я получал ошибку. После этого я удалил соответствующий файл из целевого местоположения (файл уже присутствовал, возможно, из предыдущей сборки в том месте, куда он пытается скопировать) и перестроил решение . После этого ошибка исчезла, и все прошло гладко!

person Vikram    schedule 31.07.2015
comment
удаление уже представленных файлов в целевую папку будет работать для меня - person Saad Awan; 30.07.2020

Сначала перейдите в расположение файла. Затем щелкните правой кнопкой мыши папку с файлом -> Свойства -> Не отмечен флажок только для чтения и примените к файлам и их подпапкам. Это решило мою проблему. Удачного кодирования!

person Vinayak Savale    schedule 27.02.2019

Это снова подняло голову в Visual Studio 2017, в данном случае причиной является процесс Application Insights ServiceHub.DataWarehouseHost.exe.

Обходной путь обсуждается в ветке предупреждение MSB3026: не удалось скопировать «obj \ Debug \ netcoreapp1.1 \ src.pdb» в «bin \ Debug \ netcoreapp1.1 \ src.pdb», то есть добавить событие предварительной сборки в проект в убивайте процесс каждый раз при построении проекта. Цитата из этой ссылки:

  • Щелкните правой кнопкой мыши свойства в проекте
  • Выбрать свойства
  • Сборка событий
  • Командная строка события перед сборкой
taskkill /IM ServiceHub.DataWarehouseHost.exe /F 2>nul 1>nul
Exit 0
  • Сохранить и построить
person tomRedox    schedule 06.04.2017

Может ли кто-нибудь знать, почему возникает эта проблема?

Глядя на ваш ответ о том, что вы решили проблему путем ручного копирования, я бы сказал, что код, над которым вы работали, был создан другим пользователем (также с правами администратора), поэтому он был заблокирован для вас. Выполняя копирование -? paste, вы сделали свою СОБСТВЕННУЮ копию источника со всеми необходимыми правами доступа. Единственное, на что следует обратить внимание, это то, что в этом случае, если этому другому разработчику нужно будет поработать над вашей копией, он / она столкнется с той же проблемой, что и вы раньше.

person Tigran    schedule 20.08.2011

Старый пост, но этот зомби попадает в VS 2017 (я не вникал, почему это просто «некоторые» проекты). В данном случае это не разрешения пользователя, а скорее процесс IIS Express по-прежнему использует файлы.

Вы увидите значок на панели задач  Значок IIS Express

  1. Щелкните правой кнопкой мыши
  2. Выход
  3. Вы должны иметь возможность rebuild без этого раздражающего сообщения «В разрешении отказано».

По этой же причине «перезапуск Visual Studio» «решит» проблему. При этом IIS Express останавливается.

Hth ...

person EdSF    schedule 06.09.2018

Я повторно добавил все мои зависимости / ссылки, не относящиеся к .NET, и это помогло.

person shawn    schedule 16.07.2012

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

person Henley    schedule 02.10.2013
comment
Я тоже это сделал. Всегда сначала проверяйте очевидные простые вещи, мой пункт назначения был на сетевом диске, так как я отлаживал на другой машине. - person Simon Unsworth; 21.01.2020

Была та же проблема, но перезапускать Visual Studio каждый раз не было для меня вариантом, так как проблема возникает иногда очень часто.

Я справился с этим, установив Unlocker (< em> пытается установить любую панель инструментов при установке, поэтому не забудьте снять этот флажок), это приложение дает мне быстрый доступ для переименования / удаления заблокированного файла ".xml". Я знаю, что это тоже всего лишь обходной путь, но для меня это было самое быстрое решение этой проблемы.

person David Leitner    schedule 17.03.2015
comment
Спасибо за это. У меня была эта проблема в течение прошлого года, и я думал, что это потому, что я буду переключаться между администратором и нет, но теперь я знаю, что это глупый критический процесс, связанный с антивирусом Panda (PSANHost.exe, которого нет в диспетчере задач), который заблокировал файлы. - person yeejuto; 18.08.2015

Я создал эту проблему, когда добавил в решение новый проект установки, а затем добавил файлы непосредственно из папки / bin / release основного проекта приложения в папку файлов приложения проекта установки. Система контроля версий проекта установки постоянно не позволяла мне завершить сборку основного проекта приложения.

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

person portia    schedule 03.10.2012

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

person InitialV    schedule 26.05.2014

У меня была та же ошибка, но я использую контроль версий Perforce. Вот как я это исправил.

  1. Закрытый клиент Perforce P4V
  2. Перезапустил Visual Studio 2010 (может не понадобиться)
  3. Перестроил проект, что получилось
  4. Чувствовал себя одновременно исключительно счастливым и испытывал отвращение
person Madmartigan    schedule 06.06.2014
comment
У меня такая же настройка, но я не могу перейти к шагам 3 и 4 :( - person user3260977; 10.10.2014

У меня тоже была такая же проблема. Я получил сообщения об ошибках, связанные с невозможностью копирования, поскольку доступ к пути запрещен. В моем случае все мои файлы dll, xml и так далее находятся в папке D: \ TFS \ Example \ Bin \ Debug.

Я щелкнул правой кнопкой мыши папку Bin, выбрал «Свойства» и увидел, что в разделе «Атрибуты» установлен флажок «Только для чтения».

Я снял флажок «Только для чтения», щелкнул «Применить» и щелкнул «ОК» в появившемся всплывающем окне.

Я вернулся в Visual Studio и создал свое решение, которое выдавало мне сообщения об ошибках.

Вуаля .. На этот раз сборка прошла успешно, без ошибок.

Я не знаю, идеально ли это, но я сделал это, чтобы решить свою проблему.

person Ziggler    schedule 30.12.2014

Проверьте диспетчер задач и убедитесь, что у вас не зависает процесс devenv.exe. Завершите процесс убегания и попробуйте еще раз.

person Hazen Hills Software    schedule 04.07.2015

Перейдите по пути к файлу и снимите флажок только для чтения для этого файла.

person Ramy Othman    schedule 03.05.2019

Большинство ответов, которые я видел, объективно исследуют возможные проблемы со средой, что, вероятно, верно для 99% людей, столкнувшихся с этой проблемой (невозможно скопировать файл из ... в ... доступ запрещен).

Я подумал, что должен поделиться своим опытом с 1%, столкнувшимся с этой проблемой по разным причинам.

Я написал программу пакетного переименования файлов, которую использую для обработки десятков тысяч файлов, и мой Антивирус интерпретировал ее как троян и автоматически поместил в карантин. Поскольку этот путь находится в черном списке моего Антивируса, Visual Studio никогда не сможет скопировать * .exe в папку bin, что приведет к невозможности скопировать .exe.

Я решил внести этот путь в белый список, и проблема решена.

Ваше здоровье.

person Ji_in_coding    schedule 16.01.2021

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

person Joao Leme    schedule 15.05.2013
comment
мне тоже помогли. 2020 банда - person Vitor Ceolin; 12.05.2020

Просто щелкните правой кнопкой мыши свой проект MVC и выберите вариант очистки. У меня была аналогичная проблема, и очистка проекта перед восстановлением решила ее для меня.

person Ehsan    schedule 03.03.2014

У меня тоже была такая же проблема. Я исправил это, сняв флажок "Только для чтения" корневой папки.

person Community    schedule 24.02.2015
comment
Иногда решение столь же простое и очевидное. Вместо того, чтобы продолжать бить себя головой и работать над сложными и бесконечными процедурами, просто проверьте такие простые возможности, и ваша жизнь станет намного проще. Я благодарен StackOverflow за то, что он предоставил нам такое обширное сообщество экспертов, которые могут предложить нам необходимую помощь в отчаянные моменты. - person Choudhury Saadmaan Mahmid; 05.05.2015

У меня тоже была эта проблема. Вот как решается это

  • Исключить папку bin из проекта.
  • Закройте визуальную студию.
  • Очистка диска C.
  • Повторно откройте проект в Visual Studio.
  • А затем восстановите решение.
  • Запустить проект.

Этот процесс работает для меня.

person Manoj    schedule 23.07.2015

В Visual Studio 2015 у меня сработало изменение пути вывода. Это должно помочь - Каталог вывода сборки

person krishna keshav    schedule 30.01.2018

Мне удалось решить проблему, удалив целевой файл, который жалуется (в вашем примере «Bin \ Debug \ test.Resources.xml»), из папки bin целевого веб-сайта и перестроил его. Это исправило это для меня.

person Rama Krshna Ila    schedule 06.03.2018

1) закройте решение Visual Studio

2) перейдите в командную строку -> запустить от имени администратора -> iisreset / stop

3) перейдите в c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Temporary Asp.NET Files -> Удалите все файлы и папки в этот путь.

4) Вернитесь в командную строку -> iisreset / start.

5) Теперь откройте визуальную студию -> запустите от имени администратора -> очистите решение и создайте его (не перестраивайте ... просто сборка сработала для меня)

person Krishna    schedule 21.09.2018

У меня была такая же проблема. Чтобы решить эту проблему, я проверил / сделал несколько вещей.

Что не сработало

1) Read/write permissions were given to directory 
2) Restarted visual studio
3) Tried deleting visual studio temp files

Что в итоге сработало

Просто вставьте команду, данную Фредом Моррисоном, в «Консоль диспетчера пакетов»:

Get-Process | Where-Object -Property Name -EQ 'VBCSCompiler' | Stop-Process -Force -Verbose

Примечание. Просто наблюдение. Перезапуск Visual Studio может не работать в этом случае, но перезапуск системы может, потому что остановка процесса "VBCSCompiler" была решением, поэтому мы можем сделать это в любом случае.

person Chirag Thakar    schedule 22.11.2019

Вы не должны изменять атрибут папки на "не для чтения". Причина, по которой вы видите это сообщение об ошибке, заключается в том, что исходный элемент управления предполагает, что вы храните свои разные файлы только где-то, кроме папки bin, поскольку он зарезервирован для файлов, которые автоматически создаются .Net, и он не хочет добавлять их в источник контроль.

Я предлагаю вместо использования Environment.CurrectDirectory (который, как я предполагаю, вы используете в настоящее время) вы создаете папку с именем «MyProjectName» в адресе% appdata%, а затем используйте:

System.IO.Path.Combine(Environment.GetEnvironmentVariable("appdata"),"YourProjectName").

person Bizhan    schedule 11.12.2011

Итак, я столкнулся с той же проблемой, причиной которой была моя, у меня была общая папка разработки, поэтому я мог использовать Mac в качестве узла сборки для приложения IOS с использованием Xamarin. Проект был запущен на Mac, который стал владельцем библиотеки dll, поэтому я не мог вносить изменения в эту dll из любого другого места. Простая остановка приложения на Mac вернула мне право собственности, что снова позволило получить полный доступ. Я надеюсь это получится с тех пор.

person Jon Willis    schedule 04.02.2014

Очистите все библиотеки, на которые есть ссылки, в «bin \ debug» и щелкните правой кнопкой мыши «Решение» в проводнике решений после нажатия «Очистить решение».

И восстановите !!

person TC Tarım Köy İşleri    schedule 14.05.2014

Я сталкивался с этой проблемой несколько раз, и решение, которое я нашел, - это удалить папку отладки, а затем перестроить ваше решение / проект. Сработало у меня !!

person patil.rahulk    schedule 01.08.2014

Убедитесь, что вы добавили имя файла после имени пути (путь \ имя_файла.расширение). Я не замечал этого больше часа.

person Marlon Vidal    schedule 12.08.2016

Это может быть странным побочным продуктом первоначальной загрузки исходного кода из системы управления версиями (TFS и т. Д.), Где все файлы и папки защищены от записи. Перейдите в каталог верхнего уровня и проверьте свойства. Вы можете обнаружить, что установлен флажок Только для чтения. Снимите этот флажок, и система спросит вас, хотите ли вы, чтобы все каталоги на верхнем уровне были доступны для записи. Это должно исправить.

person pat capozzi    schedule 08.02.2017

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

person desiguy    schedule 21.02.2017

В моем случае я перенес проект из Windows в OSX, используя Visual Studio Community 7.1.5 для Mac. Какая уловка заключалась в отключении опции Use MSBuild engine (recommended for this type of project) в настройках проекта:

введите здесь описание изображения

person Santiago Martí Olbrich    schedule 03.10.2017

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

Ручное копирование последней зарегистрированной версии .dll из другой папки bin проекта в папку bin в проекте, в котором возникла ошибка, устранило проблему.

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

person rsmith    schedule 08.01.2019

Я перепробовал все здесь, каким-то образом удаление всех папок bin и obj в моем проекте не сработало. Освобождение папок из других процессов ничего не дало. Перезапуск ничего не сделал. Удаление только для чтения из каждого файла путем снятия флажка в основной папке не помогло.

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

Вы знаете, что сработало?

dotnet clean

person Dominic Grenier    schedule 18.04.2020

попробовав почти все, просто скопируйте, вставил проект в другое место и построил проект ... и это сработало.

person Er.Imran Shaikh    schedule 24.03.2021

Моя началась после установки Центра обновления Windows KB5003637. Мой проект VS2019 раньше работал нормально, но после установки Центра обновления Windows возникла эта ошибка. Удалил его, и проект снова работает.

person Rick Agustin    schedule 13.06.2021

Простое решение:

Просто обновите следующие пакеты

Microsoft.CodeDom.Providers.DotNetCompilerPlatform v1.0.5 to v1.0.7

Это решит проблему.

person Dotnetpickles    schedule 25.01.2019

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

Просто перезагрузите компьютер. Откройте Visual Studio, попробуйте снова собрать.

person Blake Rivell    schedule 08.08.2017