사용자 매핑 섹션이 열려 있는 파일에서는 요청된 작업을 수행할 수 없습니다.
메인 서비스를 정지한 후, 4개의 파일을 bin 폴더에 카피하려고 하면, 1개의 파일(TexteDl)로 에러가 발생합니다.에러는 다음과 같습니다.
Cannot copy TexteDll: The requested operation cannot be performed on a file
with a user-mapped section open
시스템 잠금이 원인일 수 있습니다.또는 다른 프로세스가 이 DLL을 사용하고 있을 수 있습니다.구글을 검색해 보니 시스템을 재부팅하면 문제가 해결될 수 있습니다.
이에 대한 원인 또는 해결책을 제안할 수 있는 사람이 있습니까?TexteDll 속성(일반, 버전, 보안 등)을 확인했습니다.모든 것이 정상으로 보인다.
내 경우 탐색기가 Debug 폴더에 컴파일된 DLL을 잠그고 있었습니다.이상하지 않아?
Unlocker라는 도구를 사용하여 알게 되었습니다.
Unlocker로 삭제해야 했습니다.파일에 대한 잠금이 없다고 해도, 그 파일을 삭제하지 않으면 폴더를 삭제할 수 없었습니다.
그 후 컴파일 되었습니다.
편집:
내 경우엔 왜 이런 일이 일어나는지 알아냈어Visual Studio의 텍스트 편집기에서 DLL을 열었는데...
두 개 이상의 프로젝트 간에 참조된 어셈블리 버전 불일치에 대한 경고를 두 번 클릭하면 어셈블리 보기 창이 닫히지 않고 다른 탭 사이에 남아 있을 수 있습니다.결과적으로 VS에 의해 어셈블리가 잠기게 됩니다.그것을 알아내는 데 시간이 꽤 걸렸습니다.
VS가 제공하는 파워에 주의해 주세요.
- 또 다른 더미 시나리오.obj 폴더 전체 또는 잠긴 파일 경고만 삭제해도 이 엉터리 오류를 해결할 수 있습니다.
VS의 모든 문서를 닫고 재구축을 다시 시도합니다.정상적으로 동작하지 않는 경우는 VS를 재기동합니다.이 문제는 DLL 파일 잠금과 관련이 있습니다.
저도 같은 문제가 있었어요.해결 방법은 다음과 같습니다.
- "태스크 관리자"를 엽니다.
- 작업 "Explector.exe" 종료
- [파일] --> [새로운 태스크 작성]를 클릭합니다.[익스플로러] --> [확인] 을 입력합니다.
- 프로젝트를 정리하면 효과가 있습니다.
비주얼 스튜디오를 닫고 bin을 삭제하고 릴리스 폴더를 디버깅한 후 비주얼 스튜디오 프로젝트를 다시 시작합니다.그것은 나의 문제를 해결했다.
저는 개발자로 Unlocker와 같이 Registery에 삽입되는 앱을 좋아하지 않습니다.프로세스가 dll을 잠그는 SysInternals 프로세스 탐색기를 사용했습니다.Find > Find Handle or Dll [Ctrl-F]
이치노
저도 같은 문제가 있어서 제 경우 기존 출력 파일이 다른 어플리케이션에 의해 잠긴 것 같습니다.
Opened Files View를 사용하여 출력 파일을 잠그고 있는 응용 프로그램을 확인할 수 있습니다.http://www.nirsoft.net/utils/opened_files_view.html
, 이 다른 이 잠겨 있는 도 이미 되어 있습니다. 하고 싶은 게 있어요git diff
는 사용자가 종료할 때까지 파일도 잠급니다.그게 제 경우엔 이런 일이 일어났어요.
MSBuild.exe
파일을 잠그고 있는 프로세스(Visual Studio를 닫은 후에도 파일이 있었습니다).
앤드류 커스버트는 2016년에 다음과 같이 지적했다.git diff
는 사용자가 종료할 때까지 파일도 잠급니다.
도 git diff
단, 외부 diff 툴의 Git 2.23(Q3 2019)은 해당되지 않습니다(Burkart가 코멘트로 보고한 바와 같습니다).
요하네스 쉰델린()dscho
의 커밋 3aef54e(2019년 7월 11일)를 참조하십시오.
(2019년 7월 25일, Junio C Hamano에 의해 합병 ----commit d9beb46에서)
diff
munmap()
: diff diff diff 실행
들어 'diff', 'diff', 'diff'에서
diff tool
문제의 파일을 쓰는 것을 상정해도 무방합니다.
이나 맵된, 하는 다른 할 수 없습니다.꼭
git diff
그 자체는 문제의 파일에 대해 열려 있는 핸들을 잡고 있지 않습니다.사실 파일쌍은 바로 공개하겠습니다.외부 diff는 방금 쓴 파일을 사용하기 때문에 파일 내용을 메모리에 보관할 필요가 없습니다.
이것으로 git-for-windows#1315가 수정되었습니다.
Git 2.30 (Q1 2021)으로 수정된 세그먼트 폴트에 사용되는 미머지 패스를 가진 상태에서 외부 diff를 허용하면서 "를 실행합니다.git diff
(man)
커밋 d668518, 커밋 2469593(2020년 11월 6일) by Jinoh Kang()iamahuman
을 참조하십시오.
(커밋 d5e3532, 2020년 11월 21일 Junio C Hamano에 의해 병합됨)
diff
: 패스 허용NULL
로로 합니다.diff_free_filespec_data()
서명자: 강지노
서명자: 하마노 준오 C
3aef54e8b8 (')을 커밋합니다.
diff
munmap()
diff 실행 전", .1 Git v2.22.1)에 되었습니다.diff_free_filespec_data
에run_external_diff,
지나가도NULL
포인터이것을 수정하고, 향후 이러한 버그를 방지한다.
diff_free_filespec_data(NULL)
수술 금지수정사항: 3aef54e8b8("diff: munmap() 파일 내용 외부 diff 실행 전")
안티바이러스 소프트웨어를 실행하고 있습니까?AV 소프트웨어(또는 다른 소프트웨어)가 파일 매핑 API를 사용하여 파일을 읽고 있을 가능성이 있습니다.
여기에 게시된 솔루션 중 나에게 효과가 있는 것은 하나도 없었다.파일을 잠그는 것은 devenv.exe(Visual Studio)였지만, 재기동하면 다시 잠깁니다.
이상하게도 Windows에서는 파일 삭제(휴지통으로)를 허용하지 않았지만 Shift+Delete(영구 삭제)는 작동했습니다.
저도 같은 문제가 있었어요.재부팅이 작동하지 않았습니다.태스크 매니저에서 VBSCompiler라는 프로세스가 실행되고 있었습니다.저는 이 오류를 수정하기 위해 프로세스를 종료해야 했습니다.
obj 폴더 삭제 및 재구축이 가능했습니다.
Visual Studio를 닫고 관리자로 실행합니다.이것으로 내 문제는 해결되었다.
해결책은 VS의 모든 인스턴스를 종료하고 중단 중인 devenv.exe 프로세스를 없애는 것이었습니다.
Ant와 함께 Dot Net 애플리케이션을 빌드할 때 이러한 오류가 발생하였습니다.
제 경우 회사 백업 소프트웨어인 Symantec DLO 에이전트였습니다.바이러스 대책 소프트웨어에서 디렉토리를 제외하고 Visual Studio를 닫으면 효과가 있는 것 같습니다.
내 경우 프로젝트 루트의 obj 폴더를 삭제하고 리빌드 프로젝트로 문제를 해결했습니다!!!
프로젝트 대상 CPU를 '에서 변경한 후 발생하였습니다.Any CPU
~에게X64
'로 돌아가다.Any CPU
'.
이 문제를 해결하려면Obj
폴더(초보자용: obj 폴더 삭제는 걱정하지 마십시오.다음 컴파일에서 다시 작성됩니다).
이건 다른 거예요.파일 핸들을 사용 중이기 때문에 발생할 수 있습니다.이게 바로 이 답이 효과가 있는 이유라고 생각합니다.저는 타이핑이 있었어요.more project.csproj
내가 열어둔 걸 잊고 있었어그래서 손잡이를 읽을 수 있도록 잠겨있었어요.
Sysinternals는 다음과 같은 깔끔한 명령줄 도구를 가지고 있습니다.handle
명령줄을 선호하는 경우.입력할 수 있습니다.handle <partial name of whatever file or folder you want>
어떤 프로그램이 그것을 사용하고 있는지 알 수 있습니다.
이 에러가 발생했는데, FxCop이 제 프로젝트에 대해 실행되고 있는 것이 문제였습니다.FxCop을 닫고 컴파일을 다시 할 수 있습니다.
임시 ASP에서 파일을 삭제하는 웹 응용 프로그램인 경우.NET Files 폴더가 해결책이 될 수 있습니다.
AQ Time과 같은 프로파일러를 사용하는 경우 파일이 잠길 수도 있습니다.이 경우 해결 방법은 프로파일러를 재부팅하거나 프로파일러에서 문제의 어셈블리를 언로드/로드하는 것입니다.AQ Time에서는 잠시 후에 파일이 릴리스되는 것을 알 수 있었습니다만, 그 타임아웃을 알 수 없습니다.무작위인 것 같다
위의 어느 것도 이 문제를 해결하지 못했습니다.
누군가가 빌드 구성에서 x64 CPU를 사용하도록 솔루션 세트 중 하나의 프로젝트를 수행했습니다.CPU를 임의의 CPU로 변경하면 빌드에서 새 폴더를 사용하게 됩니다.나는 그 파일에 어떤 과정이 잠겨 있었는지 아직도 모른다.
Visual Studio 2019 Visual Micro 。그것은 에 대해 불평하고 있었다.\_vm\compile.vmps.xml
파일을 삭제/수정할 수 없습니다.하려면 , 「 」를 해 주세요._vm
프로젝트 루트 디렉토리에 있는 폴더와 솔루션을 재구축합니다.
내 경우 로컬 IIS에 API를 게시하려고 했는데, IIS 대상 폴더에서 원인 파일을 삭제하고 다시 게시하는 것만으로 API를 수정했는데, API가 손상된 것 같았습니다.
윈도우 10, Visual Studio 2022, Visual Basic 프로젝트에서 일어난 일입니다.프로세스 탐색기 "Find Handle/DLL"에는 파일을 잠그는 devenv.exe의 4줄이 표시됩니다.
devenv.exe를 죽이는 것 외에 잠긴 파일이 포함된 폴더(이 경우 bin\Debug)를 삭제하는 것만으로 문제를 해결할 수 있습니다.잠긴 파일은 삭제할 수 없지만 폴더 전체를 삭제할 수는 있습니다.
어떻게 된 일인지 간단한 재기동으로 문제가 해결되었다.
제 경우 VS2022(devenv.exe)의 "보이지 않는" 인스턴스가 실행되고 있었습니다.태스크 매니저에 [Status=Matus](상태=표시)로 표시되었지만 태스크바나 다른 어디에도 해당 창이 표시되지 않았습니다.그 과정을 없앤 후에 문제는 해결되었다.
나는 위의 해결책을 시도했지만 효과가 없었다.내가 수행한 몇 가지 절차:
- 모든 VS 인스턴스를 닫았다가 다시 여는 중입니다.
- 킬링 체격exe 및 explor.exe 프로세스.
- 프로젝트에서 bin 폴더를 삭제하는 중입니다.
나에게 효과가 있었던 것은, 「Restarting My Machine」입니다.
언급URL : https://stackoverflow.com/questions/4658354/the-requested-operation-cannot-be-performed-on-a-file-with-a-user-mapped-section
'programing' 카테고리의 다른 글
TSQL에서의 COALESCE 기능 (0) | 2023.04.21 |
---|---|
SQL Server에서 전달의 첫 번째 날과 마지막 날(타임스탬프 포함)을 가져오는 방법 (0) | 2023.04.21 |
이 저장소에서 다른 Git 프로세스가 실행되고 있는 것 같습니다. (0) | 2023.04.21 |
bash에게 회선이 다음 줄에 계속됨을 알리는 방법 (0) | 2023.04.21 |
Swashbuckle을 사용하여 WebAPI의 Swagger 문서에서 메서드를 생략하는 방법 (0) | 2023.04.21 |