Ilekroć próbowałem skopiować 4 pliki do folderu bin, po zatrzymaniu usługi głównej pojawia się błąd z jednym plikiem (TexteDll). Błąd jest następujący:
Cannot copy TexteDll: The requested operation cannot be performed on a file
with a user-mapped section open
Może to być spowodowane blokowaniem systemu. A może inny proces korzysta z tej biblioteki DLL. Kiedy przejrzałem Google, stwierdziłem, że ponowne uruchomienie systemu może rozwiązać ten problem.
Czy ktoś może zaproponować przyczynę lub rozwiązanie tego problemu? Sprawdziłem właściwości TexteDll (ogólne, wersja, bezpieczeństwo itp.). Wszystko wydaje się normalne.
Odpowiedzi:
W moim przypadku to Explorer blokował bibliotekę DLL skompilowaną w folderze debugowania ... Dziwne, prawda?
Dowiedziałem się za pomocą narzędzia o nazwie Unlocker.
Musiałem usunąć za pomocą Unlockera, nawet gdy mówiono, że nie ma blokady pliku i nie mogłem usunąć folderu, dopóki nie usunę tego pojedynczego pliku ...
Potem się skompilował.
EDYTOWAĆ:
Dowiedziałem się, dlaczego w moim przypadku tak się dzieje. Miałem bibliotekę DLL otwartą w edytorze tekstów w Visual Studio ...
źródło
Czasami po dwukrotnym kliknięciu ostrzeżenia o niezgodności przywoływanej wersji zestawu między co najmniej dwoma projektami zapominasz zamknąć okno widoku zespołu i pozostaje ono w tym miejscu między innymi kartami ... w efekcie zespół jest blokowany przez VS i zrozumienie tego zajęło mi sporo czasu :)
Uważaj na moc jaką zapewnia VS;)
źródło
zamknij wszystkie dokumenty w VS i spróbuj odbudować ponownie. Jeśli to nie działa, uruchom ponownie VS. Ten problem dotyczy blokady plików DLL.
źródło
Zamknij program Visual Studio, usuń bin, folder wydania debugowania i ponownie uruchom projekt Visual Studio. to naprawiło mój problem
źródło
Miałem ten sam problem iw moim przypadku okazało się, że istniejący plik wyjściowy został zablokowany przez inną aplikację.
Możesz sprawdzić, która aplikacja blokuje plik wyjściowy za pomocą OpenedFilesView: http://www.nirsoft.net/utils/opened_files_view.html
źródło
Jestem programistą i nie lubię aplikacji wstrzykiwanych do Rejestru, takich jak Unlocker. Użyłem SysInternals Process Explorer, który proces zablokował moją bibliotekę DLL
Find > Find Handle or Dll [Ctrl-F]
i zabił proces.źródło
Inni już ustalili, że ten błąd jest spowodowany blokadą pliku przez inną aplikację. Chciałem tylko zaznaczyć, że
git diff
blokuje również pliki, dopóki z niego nie wyjdziesz. To właśnie spowodowało to w moim przypadku.źródło
Miałem ten sam problem. Jak to rozwiązałem:
źródło
Czy korzystasz z oprogramowania antywirusowego? Możliwe, że oprogramowanie AV (lub inne oprogramowanie) odczytywało plik przy użyciu interfejsów API mapowania plików, co spowodowało problem.
źródło
W moim przypadku musiałem zabić
MSBuild.exe
proces zawieszania , który blokował plik (był tam nawet po zamknięciu programu Visual Studio).źródło
Usunięcie folderu obj i przebudowanie działało dla mnie
źródło
Miałem ten sam problem. Ponowne uruchomienie nie działało dla mnie. W menedżerze zadań działał proces o nazwie VBSCompiler. Musiałem zakończyć proces, aby naprawić ten błąd.
źródło
Żadne z zamieszczonych tutaj rozwiązań nie działało dla mnie. To był devenv.exe (Visual Studio) blokujący plik, ale gdybym go ponownie uruchomił, ponownie go zablokuje.
Dziwnie, system Windows nie pozwolił mi usunąć plików (do Kosza), ale Shift + Delete (trwałe usunięcie) działał.
źródło
Zamknij program Visual Studio i uruchom go jako administrator. Naprawiono mój problem.
źródło
Rozwiązaniem było dla mnie zamknięcie wszystkich instancji VS i zabicie wszelkich wiszących procesów devenv.exe.
źródło
Rozwiązaniem było dla mnie ponowne uruchomienie komputera.
źródło
W 2016 roku Andrew Cuthbert zauważył, że git diff blokuje również pliki, dopóki z niego nie wyjdziesz.
Tak nie będzie w przypadku Git 2.23 (III kwartał 2019 r.)
Zobacz commit 3aef54e (11 lipca 2019) autor: Johannes Schindelin (
dscho
) .(Połączone przez Junio C Hamano -
gitster
- w commit d9beb46 , 25 lipca 2019)źródło
Widziałem te błędy podczas budowania aplikacji Dot Net za pomocą Anta.
W moim przypadku było to nasze korporacyjne oprogramowanie do tworzenia kopii zapasowych, Symantec DLO Agent. Wydaje się, że zatrzymanie go i wykluczenie katalogu z mojego oprogramowania antywirusowego oraz zamknięcie programu Visual Studio.
źródło
w moim przypadku usunąłem folder obj w katalogu głównym projektu i przebudowa projektu rozwiązała mój problem !!!
źródło
Napotkałem ten błąd i okazało się, że FxCop działa przeciwko mojemu projektowi. Zamknąłem FxCop, a potem mogłem ponownie skompilować.
źródło
Jeśli jest to aplikacja internetowa, usuwanie plików w folderze tymczasowych plików ASP.NET może być rozwiązaniem.
źródło
Jeśli korzystasz z profilerów takich jak AQ Time, mogą one również blokować plik. Rozwiązaniem w tym przypadku byłoby ponowne uruchomienie profilera lub po prostu rozładowanie / załadowanie danego zespołu z profilera. W przypadku AQ Time zauważyłem, że po pewnym czasie zwalnia plik, ale nie mogę przez całe życie powiedzieć, jaki jest limit czasu. Wydaje się być losowy
źródło
Mam również ten sam błąd dzisiaj. Rozwiązałem ten problem, ponownie budując projekt.
źródło
Miałem ten błąd spowodowany pozostawieniem uruchomionego w innej konsoli pliku „więcej” vs. Ups
źródło
Żadne z powyższych nie rozwiązało tego problemu.
Ktoś miał jeden projekt w moim zestawie rozwiązań do używania procesora x64 w konfiguracji kompilacji. Zmiana na dowolny procesor spowodowała, że kompilacja używa nowego folderu. Nadal nie wiem, który proces miał (ma) blokadę tego pliku.
źródło
Miałem ten sam problem. Usunąłem dll z folderu tymczasowego, usunąłem dostęp tylko do odczytu, zrestartowałem komputer i uruchomiłem go.
źródło
W moim przypadku po prostu zamykam wszystkie instancje i kopiuję folder główny aplikacji i wklejam go w innej lokalizacji, a następnie otwieram rozwiązanie w VS to działa ....
źródło
Mój problem został również rozwiązany przez przesiewanie przez Process Explorer. Jednak proces, który musiałem zabić, to MySQL Notifier.exe, który nadal działał po zamknięciu wszystkich aplikacji VS i SQL.
źródło