programing

사용자 매핑 섹션이 열려 있는 파일에서는 요청된 작업을 수행할 수 없습니다.

muds 2023. 4. 21. 21:32
반응형

사용자 매핑 섹션이 열려 있는 파일에서는 요청된 작업을 수행할 수 없습니다.

메인 서비스를 정지한 후, 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 파일 잠금과 관련이 있습니다.

저도 같은 문제가 있었어요.해결 방법은 다음과 같습니다.

  1. "태스크 관리자"를 엽니다.
  2. 작업 "Explector.exe" 종료
  3. [파일] --> [새로운 태스크 작성]를 클릭합니다.[익스플로러] --> [확인] 을 입력합니다.
  4. 프로젝트를 정리하면 효과가 있습니다.

비주얼 스튜디오를 닫고 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에서)

diffmunmap(): 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 (')을 커밋합니다.diffmunmap()diff 실행 전", .1 Git v2.22.1)에 되었습니다.diff_free_filespec_datarun_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>어떤 프로그램이 그것을 사용하고 있는지 알 수 있습니다.

Sysinternals의 취급

이 에러가 발생했는데, 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

반응형