[windows] 사용자가 매핑 한 섹션이 열린 파일에서 요청한 작업을 수행 할 수 없습니다.

기본 서비스를 중지 한 후 4 개의 파일을 bin 폴더에 복사하려고 할 때마다 하나의 파일 (TexteDll)에 오류가 발생합니다. 오류는 다음과 같습니다

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

시스템 잠금으로 인한 것일 수 있습니다. 또는 다른 프로세스가이 DLL을 사용 중일 수 있습니다. 내가봤을 때 시스템을 재부팅하면 문제가 해결 될 수 있음을 발견했습니다.

아무도 이것에 대한 원인이나 해결책을 제안 할 수 있습니까? TexteDll 속성 (일반, 버전, 보안 등)을 검사했습니다. 모든 것이 정상으로 보입니다.



답변

내 경우에는 디버그 폴더에 컴파일 된 DLL을 잠그는 탐색기였습니다 … 이상하지 않습니까?

Unlocker라는 도구를 사용하여 알게되었습니다.

파일에 대한 잠금이 없다고 말했을 때에도 Unlocker로 삭제해야했으며 단일 파일을 삭제하지 않으면 폴더를 삭제할 수 없었습니다 …

그 후 그것은 컴파일되었습니다.

편집하다:

제 경우에는 왜 이런 일이 발생했는지 알아 냈습니다. Visual Studio의 텍스트 편집기에서 DLL을 열었습니다 …


답변

  • 때로는 두 개 이상의 프로젝트 사이에서 참조 된 어셈블리 버전 불일치에 대한 경고를 두 번 클릭하면 어셈블리 뷰 창을 닫는 것을 잊어 버리고 다른 탭 사이에 유지됩니다. 따라서 VS 자체에 의해 어셈블리가 잠기고 그것을 알아내는 데 꽤 많은 시간이 걸렸습니다. 🙂

    VS가 제공하는 힘에주의하십시오.)

  • 또 다른 더미 시나리오. 때로는 전체 obj 폴더를 삭제하거나 잠긴 파일 이이 crappy 오류를 해결하는 데 도움이되므로 파일을 경고합니다.

답변

VS의 모든 문서를 닫고 다시 빌드하십시오. 작동하지 않으면 VS를 다시 시작하십시오. 이 문제는 DLL 파일의 잠금과 관련이 있습니다.


답변

Visual Studio를 닫고 bin을 삭제하고 릴리스 폴더를 디버그 한 다음 Visual Studio 프로젝트를 다시 시작하십시오. 그게 내 문제를 해결했다.


답변

나는 같은 문제가 있었고 내 경우에는 기존 출력 파일이 다른 응용 프로그램에 의해 잠겨있는 것처럼 보였습니다.

OpenedFilesView를 사용하여 출력 파일을 잠그는 응용 프로그램을 확인할 수 있습니다.
http://www.nirsoft.net/utils/opened_files_view.html


답변

나는 개발자이며 Unlocker와 같은 Registery에 주입 된 앱을 좋아하지 않습니다. SysInternals Process Explorer 를 사용 Find > Find Handle or Dll [Ctrl-F]하여 프로세스가 내 dll을 잠그고 프로세스를 종료했습니다.


답변

다른 사람들은 이미이 오류가 다른 응용 프로그램이 파일을 잠 갔기 때문에 발생한다는 것을 확인했습니다. git diff종료 할 때까지 파일 을 잠그는 것을 지적하고 싶었 습니다. 그것이 내 경우에 이것을 일으킨 원인입니다.