Неможливо скопіювати файл - доступ до шляху заборонено


238

Я використовую 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

Хтось знає, чому виникає ця проблема?

Редагування Я бачу, що вся моя папка вихідного коду проекту - лише для читання, і я не в змозі видалити властивість лише для читання.

По-перше, чи може хтось мені сказати, як видалити властивість лише для читання для цієї папки? Я намагався її видалити, але властивість лише для читання зберігається. Я також спробував з боку управління версією, і це теж не вийшло.


Це на спільній мережі? Чи є у вас адміністративний доступ на вашій машині? Це питання може бути краще підходить для сервера за замовчуванням або для суперпользователя.
arunkumar

ні, я використовую власну машину, у мене є адміністративний доступ
рик

Я вирішив цю проблему, вручну скопіювавши файл з одного місця в потрібне місце, можливо, проблема пов'язана з MSBUILD з файлом для читання тільки
ricky

Відповіді:


277

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


50
старий пост, я знаю, але у мене було те саме питання саме зараз. Переконайтесь, що VS також закритий, оскільки він заборонятиме доступ до видалення папки в деяких випадках
Eon

1
Маленька примітка: я не зрозумів, спочатку я маю видалити ці файли у вихідній папці основного проекту, а не у папці виводу DLL. Отже, попередження тут :)
П'єро Альберто

6
У моєму випадку навіть закриття VS було недостатньо, щоб звільнити папку та дозволити мені її видалити - ProcessExplorer показав, що "VBCSCompiler.exe" все ще використовує її. У цьому випадку вихід із системи Windows та (або просто вбивство процесу) зробив трюк, що дозволило мені відновити рішення та знову все запрацювати.
S. Jensen

2
у моєму випадку причина того, що папка та рішення перетворилися на ReadOnly, а згодом у VS виникли проблеми зі створенням її, через те, що якийсь файл не зміг синхронізуватись з GoogleDrive та був заблокований цим процесом. Тому для належної реконструкції мені довелося закрити GoogleDrive, і тоді це було чудово.
konrad

1
Винувателем виявився Bitdefender Antivirus Free.
Уорвік

123

Просто переконайтесь, що папка НЕ ​​є лише для читання, і відновіть рішення


12
Я намагаюся зняти прапорець "Лише для читання", заповнений зеленим кольором. Коли я натискаю "Застосувати", а потім "Ок", а потім знову перевіряю властивості цієї папки, я знову бачу в попередньому стані (знову встановлений прапорець "Лише для читання", заповнений зеленим кольором). Хто має рішення щодо цього?
Вікрам

Також переконайтеся, що файл не заблокований. У моєму випадку файл був відкритим, і хтось ще його відкрив.
Ден Бешард

Перед видаленням атрибута лише для читання закрийте Visual Studio. Оскільки файл, про який йде мова, може бути у використанні (заблокований)
Gautam Jain

4
Створено розширення Visual Studio для очищення атрибута ReadOnly та Hidden від dll, що блокує збірку. UnBlockDllExtension: marketplace.visualstudio.com/…
vrnithinkumar

69

Я вирішив цю проблему: закрийте Visual Studio, відкрийте її знову і завантажте рішення, відновіть своє рішення. Моя проблема виникла при використанні TFS та VIsual Studio 2010.


22
Додайте ту саму проблему у VS2013. Класичний випадок ІТ-натовпу. "Привіт, це ІТ, чи намагалися ви вимкнути та знову ввімкнути?".
Максим Руйлер

1
Той самий сценарій: TFS та VS 2010. Та сама проблема. Це ж рішення. +1
ajeh

2
Це сталося і на VS2015: p
Yoo Matsuo

4
І те саме у VS2017
arame3333

1
Я вже схаменувся, намагаючись це виправити, виявився старий добрий метод, якщо щось не працює, перезавантажте його, працював просто чудово
Михайло Сенютович

50

Вбийте процес VBCSCompiler.exeі відновіть.


3
Це те, що вирішило це для мене. Дякую добрий незнайомець: D
Морс

так, це все.
kal kokah

Дуже дякую, ти добрий незнайомець! : D
Агент007

колись це працювало для мене не завжди, я мушу сказати, що це вирішить частину цієї проблеми. Є ще щось, що спричиняє цю проблему
Аміт Бішт,

Спробуйте також це може допомогти вам stackoverflow.com/a/12740768/2445111
Аміт Бішт

23

Я теж вступив у цю проблему.

Спершу перейдіть і перевірте, чи пов’язано папку bin та obj в програму Control Source.

Це може перетворити ваші файли з папок бінарних файлів у архіви лише для читання, що унеможливить візуальну студію перезаписати їх, коли вона компілює код.

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

Моя проблема виникла за допомогою TFS (сервер фундамента команди) та Visual Studio 2010.

Сподіваюся, що це комусь допоможе.


1
Я просто хотів додати, що відповідь Heitorolecarte вирішила мою проблему, і це може статися з Visual Studio 2012 та TFS2010.
Родні

20

Запустіть Visual Studio як адміністратор


1
Примітка: тут короткий і простий спосіб запуску від імені адміністратора за замовчуванням stackoverflow.com/questions/12257110 / ...
wmebane

Ця відповідь сказала мені досить, що я знаю просто додати дозвіл на запис "Користувачам" у своїй вихідній папці - і це миттєво вирішило мою проблему (що я не міг опублікувати навіть у перший раз).
X

9

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

  1. У перший раз я запускав Visual Studio без прав адміністратора. Отже, я закрив VS і запустив його, використовуючи опцію ' Запустити як адміністратор '. Це вирішило мою проблему.

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



7

Це знову зробило голову у Visual Studio 2017, в цьому випадку причиною є процес Insights Application 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
  • Зберігайте та будуйте

6

Чи може хтось орган знати, чому виникає це питання?

Дивлячись на вашу відповідь, що ви вирішили свою проблему шляхом копіювання вручну, я б сказав, що код, над яким ви працювали, був зроблений іншим користувачем (з правами адміністратора теж), тому він був для вас заблокований. Виконуючи копію -? Вставте, ви зробили власну копію джерела з усім необхідним доступом. Єдине, що слід помітити, це те, що в цьому випадку, якщо цьому іншому розробникові буде потрібно працювати над вашою копією, він / вона перескочить у тій самій проблемі, яку ви мали раніше.


6

Спочатку перейдіть до місця розташування файлу. Потім клацніть правою кнопкою миші на папці файлу -> Властивості -> Невизначена опція лише для читання та застосуйте до файлів та його підпапок. Це вирішило мою проблему. Щасливе кодування!


3

Я повторно додав всі мої залежності / посилання, які не є NET, і це зробило трюк.


3

Я вирішив це питання сам. Проблема полягала в тому, що у мене було рішення відкрити в іншому місці. Після закриття він працює


Я теж це робив. Завжди перевіряйте очевидні легкі речі спочатку, моє призначення було на мережевому диску, оскільки я налагоджував на іншій машині.
Саймон Унсуорт

3

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

Я впорався з цим, встановивши Unlocker ( намагається встановити будь-яку панель інструментів при установці, тому не забудьте зняти цей прапорець ). Ця програма надає мені швидкий доступ до перейменування / видалення заблокованого ".xml" -файлу . Я знаю, що це теж лише вирішення проблеми, але для мене це було найшвидшим рішенням цієї проблеми.


Дякую за це У мене ця проблема була в минулому році, і я думав, що це було через те, що я переключуся між адміністратором і ні, але тепер я знаю, що це дурний критичний процес, пов'язаний з антивірусом Panda (PSANHost.exe, немає в диспетчері завдань), який заблокував файли.
yeejuto

3

Старий пост, але цей зомбі потрапляє до VS 2017 (я не розглядав, чому це просто "деякі" проекти). У цьому випадку це не дозволи користувачів , а IIS Express процес все ще використовує файли.

Ви побачите піктограму в лотку завдань IIS Express значок

  1. Клацніть правою кнопкою миші
  2. Вихід
  3. Ви повинні мати можливість rebuildбез цього дратівливого повідомлення "відмовлено у дозволі".

Ось чому "перезапуск Visual Studio" "виправить" проблему. Це робить, зупиняє IIS Express.

Хт ...


2

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

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


2

Якщо ви копіюєте будь-які файли на рішення, переконайтеся, що файли не перебувають у режимі лише для читання. Клацніть правою кнопкою миші на файл і зніміть прапорці з параметрами атрибутів, щоб вирішити мою проблему.


2

У мене була така ж помилка, але я використовую контроль версій Perforce . Ось як я це виправив.

  1. Закритий клієнт Perforce P4V
  2. Перезапущена Visual Studio 2010 (можливо, не знадобиться)
  3. Перебудували проект, який вдався
  4. Відчував себе винятково щасливим і одночасно огидним

1
У мене те саме налаштування, але я не зміг дійти до кроків 3 та 4 :(
user3260977

2

У мене також була така ж проблема. Я отримав повідомлення про помилки, які пов’язані з неможливо скопіювати, оскільки заборонено доступ до шляху. У моєму випадку всі файли DLL та XML і так далі розміщуються в папці D: \ TFS \ Example \ Bin \ Debug.

Я правою кнопкою миші натиснув папку "Бін" і натиснув "Властивості" і побачив, що прапорець "Лише для читання" встановлено під "Атрибути".

Я зняв прапорець Лише для читання і поставив галочку Застосувати та натиснув ОК у новому спливаючому вікні, що відображається.

Я повернувся до Visual Studio і створив своє рішення, яке давало мені повідомлення про помилки.

Voilaa .. Цього разу він успішно будується без помилок.

Я не знаю, чи це ідеально, але я зробив це для вирішення своєї проблеми.



2

Перейдіть до шляху файлу, а потім зніміть прапорець лише для читання цього файлу.


1

Я знаю, що це стара тема, але для тих, хто шукає відповіді, як я кілька хвилин тому, рекомендую спробувати перезавантажити комп’ютер спочатку. Це одне зафіксовано для мене. Раніше навіть не вдалося вручну скопіювати в папку.


1
мені теж допомогли. Банда 2020 року
Вітор Чеолін

1

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


1

У мене була така ж проблема. Я виправив це, знявши галочку з властивостей кореневої папки лише для читання.


Іноді рішення настільки ж просто і очевидно, як це. Замість того, щоб продовжувати стукати головою і займатися складними і нескінченними процедурами, просто перевірте, чи є такі прості можливості, і ваше життя стане набагато простішим. Я вдячний StackOverflow за те, що він надав нам таке широке співтовариство експертів, які можуть запропонувати нам необхідну допомогу у відчайдушні моменти.
Чодхурі Саадман Махмід

1

У мене теж було це питання. Ось як це вирішено

  • Виключити binпапку з проекту.
  • Закрити візуальну студію.
  • Очищення диска приводу С.
  • Відкрийте проект у візуальній студії.
  • А потім відновити рішення.
  • Запустити проект.

Цей процес працює для мене.



1

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


1

1) закрити візуальне рішення студії

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

3) перейдіть до c -> Windows -> Microsoft.Net -> Framework64 -> v4.030319 -> Тимчасові файли Asp.NET -> Видаліть усі файли та папки на цьому шляху.

4) Поверніться до командного рядка -> iisreset / start

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


0

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

Я пропоную замість того, щоб використовувати Environment.CurrectDirectory(який, я вважаю, ви використовуєте в даний час), ви створите папку з назвою "MyProjectName" в% appdata% address, а потім використовуйте:

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


0

Тож я просто зіткнувся з тією ж проблемою, що викликає мою причину. У мене була поділена папка розробки, щоб я міг використовувати mac як хост збирання для додатка IOS за допомогою Xamarin. Проект працював на Mac, який взяв на себе право власності на dll, тому я не міг вносити зміни до цього dll ніде. Просто зупинивши програму на mac повернув мені право власності, що дозволило знову отримати повний доступ. Я сподіваюся, що це зробити з того часу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.