Запрошенная операция не может быть выполнена в файле с открытым пользователем разделом

Всякий раз, когда я пытался скопировать 4 файла в папку bin, после остановки основной службы я получаю сообщение об ошибке с одним файлом (TexteDll). Ошибка:

Cannot copy TexteDll: The requested operation cannot be performed on a file 
with a user-mapped section open

Возможно, это связано с некоторой системной блокировкой. Или, возможно, другой процесс использует эту DLL. Когда я googled, я обнаружил, что перезагрузка системы может решить эту проблему.

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

+192
11 янв. '11 в 13:56
источник поделиться
26 ответов

В моем случае это был Explorer, который блокировал DLL, которая была скомпилирована в папке Debug... Странно, не правда ли?

Я узнал, используя инструмент Unlocker.

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

После этого он скомпилирован.

EDIT:

Я узнал, почему в моем случае это происходило. У меня была DLL, открытая в текстовом редакторе внутри Visual Studio...

+170
12 мар. '13 в 19:14
источник
  • Иногда, когда вы дважды щелкаете по предупреждению об упомянутых ссылках несоответствие версии сборки между двумя или несколькими проектами, которые вы забываете закройте окно просмотра сборки и оставайтесь там среди других вкладки... так что вы заканчиваете сборку, заблокированную VS и мне потребовалось довольно много времени, чтобы понять это:)

    Будьте осторожны с мощностью VS обеспечивает;)

  • Другой фиктивный сценарий. Иногда просто удаляя весь объект или только файл, предупрежденный как заблокированный, помогает с этим crappy error.
+71
19 февр. '14 в 17:40
источник
другие ответы

Связанные вопросы


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

закрыть все документы на VS и попытаться снова восстановить. Если он не работает, перезапустите VS. Эта проблема связана с блокировкой файлов DLL.

+33
02 сент. '13 в 11:16
источник

Закройте визуальную студию, удалите корзину, отпустите папку выпуска и снова запустите визуальный проект студии. который исправил мою проблему

+11
18 мар. '14 в 11:30
источник

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

Вы можете проверить, какое приложение блокирует ваш выходной файл с помощью OpenedFilesView: http://www.nirsoft.net/utils/opened_files_view.html

+10
27 сент. '12 в 9:42
источник

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

+9
22 мар. '16 в 5:10
источник

Я разработчик и не люблю приложения, введенные в Registery, например Unlocker. Я использовал SysInternals Process Explorer, который запустил мою dll Find > Find Handle or Dll [Ctrl-F] и убил процесс.

+8
28 окт. '15 в 9:28
источник

В моем случае мне пришлось убить висячий MSBuild.exe процесс, который блокировал файл (он был там даже после того, как я закрыл Visual Studio).

+6
29 авг. '15 в 11:23
источник

Используется ли какое-либо антивирусное программное обеспечение. Возможно, программное обеспечение AV (или другое программное обеспечение) читало файл с помощью API-интерфейсов сопоставления файлов, которые вызвали проблему.

+5
12 сент. '12 в 14:49
источник

Я была такая же проблема. Как я решил это было:

  1. Откройте "Диспетчер задач"
  2. Завершить задачу "Explorer.exe"
  3. Нажмите "Файл" → Создать новое задание - введите "explorer.exe" → ОК
  4. Очистите мой проект, и он работает
+5
30 янв. '19 в 17:52
источник

У меня была та же проблема. Перезапуск не работал у меня. В диспетчере задач был запущен процесс под названием VBSCompiler. Мне пришлось закончить процесс, чтобы исправить эту ошибку.

+3
16 мар. '17 в 15:15
источник

Ни одно из решений, размещенных здесь, не работало для меня. Это был файл devenv.exe(Visual Studio), блокирующий файл, но если бы я его перезапустил, он бы снова заблокировал его.

Необычно, Windows не позволит мне удалить файлы (в Корзину), но Shift + Delete (постоянное удаление) сработало.

+3
30 мар. '17 в 22:53
источник

Удаление папки obj и восстановление для меня работало

+3
31 авг. '17 в 9:13
источник

Закройте Visual Studio и запустите его как администратор. Это устранило мою проблему.

+2
03 сент. '14 в 12:00
источник

Решение для меня заключалось в том, чтобы закрыть все экземпляры VS и убить любые зависающие процессы devenv.exe.

+2
16 дек. '16 в 20:50
источник

Я видел эти ошибки при создании приложений Dot Net с помощью Ant.

В моем случае это было наше корпоративное программное обеспечение для резервного копирования, Symantec DLO Agent. Остановить его и исключить каталог в моем антивирусном программном обеспечении и закрыть Visual Studio, кажется, работает.

+1
09 сент. '14 в 19:55
источник

Решением для меня было перезагрузить компьютер.

+1
29 дек. '16 в 15:32
источник

в моем случае удалил папку obj в корне проекта и восстановил проект, решив мою проблему!!!

+1
09 дек. '17 в 10:08
источник

It has been Эндрю Катберт in 2016 by указал в 2016 году, что git diff также блокирует файлы, пока вы не выйдете из него.

Это не будет иметь место с Git 2.23 (3 квартал 2019 года)

См. коммит 3aef54e (11 июля 2019 г.) от Йоханнеса Шинделина (dscho).
(Merged by Junio C Hamano -- [TG41] -- in commit d9beb46, 25 Jul 2019)

diff: содержимое файла munmap() перед запуском внешнего diff

При запуске внешнего diff, скажем, из diff tool, безопасно предположим, что мы хотим записать соответствующие файлы.
В Windows это означает, что не может быть никакого другого процесса, держащего открытый дескриптор указанные файлы, или даже просто сопоставленный регион.

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

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

This fixes git-for-windows#1315

+1
27 июл. '19 в 6:30
источник

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

0
20 авг. '15 в 16:13
источник

Если это веб-приложение, удаляющее файлы в папке Временные файлы ASP.NET, может быть решением.

0
03 дек. '15 в 12:25
источник

Если вы используете профилировщики, такие как AQ Time, они также могут блокировать файл. Решением в этом случае было бы перезапустить профилировщик или просто выгрузить/загрузить сборку, о которой идет речь, из профилировщика. Для AQ Time я заметил, что он выпустил файл через некоторое время, но я не могу на всю жизнь рассказать, что это за тайм-аут. Кажется случайным

0
22 апр. '16 в 13:33
источник

У меня также появилась такая же ошибка сегодня. Я решил эту проблему, перестроив проект.

0
18 мая '16 в 9:16
источник

У меня была эта ошибка, вызванная тем, что файл "more" и "v" обсуждались в другой консоли. К сожалению.

0
29 нояб. '18 в 15:41
источник

Я закрыл все открытые документы в VS и перезапустил VS, потом все заработало.

0
27 мая '19 в 8:38
источник

Моя проблема также была решена путем просеивания через Process Explorer. Однако процесс, который мне пришлось убить, был MySQL Notifier.exe, который все еще работал после закрытия всех приложений VS и SQL.

-1
29 июн. '18 в 15:45
источник

Посмотрите другие вопросы по меткам или Задайте вопрос