[c#] 빌드 오류 : “다른 프로세스에서 사용 중이므로 프로세스가 파일에 액세스 할 수 없습니다.”

저는 C # webforms앱을 가지고 있는데 , 오늘까지 그냥 수영으로 작동했습니다.

이제 오늘 갑자기 앱을 실행하려고 할 때마다 파일 잠금 오류가 발생합니다.

“obj \ Debug \ MyProject.exe”파일을 “bin \ Debug \ MyProject.exe”에 복사 할 수 없습니다. 다른 프로세스에서 사용 중이므로 “bin \ Debug \ MyProject.exe”파일에 액세스 할 수 없습니다.

인터넷 검색 오류는 명백한 것 이상으로 나오지 않습니다. 즉, VS는 파일이 잠겨 있다고 생각합니다. 그리고 VS를 닫고 다시 열면 프로젝트가 처음으로 잘 실행되기 때문에 파일을 잠그는 것은 확실히 Visual Studio 자체입니다. 두 번째로 실행하려고하면 파일 잠금 오류가 발생합니다.

앱을 실행하고 싶을 때마다 VS를 닫고 다시 여는 것은 실행 가능한 해결 방법이 아닙니다! 파일을 잠근 항목을 확인하고 파일이 잠기지 않도록하려면 어떻게합니까?

편집 : 또 다른 흥미로운 발견 : 앱을 실행할 필요조차 없습니다. 한 번만 컴파일하면 파일 잠금이 발생합니다. 두 번 연속 컴파일 할 수 없습니다!

이 문제는 내 솔루션의 한 프로젝트에만 해당됩니다. 다른 모든 프로젝트는 잘 작동하며 원하는만큼 여러 번 실행할 수 있습니다. 잠긴 것은이 하나의 프로젝트뿐입니다.



답변

저에게 맞는 간단한 해결책을 찾았습니다. 다음과 같이 진행됩니다.

문제가 발생하면 맨 위에있는 건물 구성을 변경하고 (“Release”에서“Debug”로 또는 그 반대로) 빌드 한 다음 이전 구성으로 다시 변경하고 다시 빌드하십시오.

스크린 샷

구성을 변경하면 vcshost와 devenv가 해제된다고 가정합니다.


답변

글쎄, 나는 스스로 문제를 해결했다. 아직 이유는 모르겠지만. 프로젝트에서 모든 파일을 제거한 다음 다시 추가하고 어떤 파일이 문제의 원인인지 확인하여 문제를 격리하기로 결정했습니다. 그래서 하나씩 파일을 프로젝트에 다시 도입하고 각 단계를 컴파일하고 정리했습니다 … 때까지 … 마지막 파일을 추가했습니다 …

… 그리고 모든 것이 여전히 잘 작동했습니다.

원래 .csproj의 소스 컨트롤과 비교했습니다. 실제 차이는 없습니다. 그리고 .csproj의 이전 버전으로 되돌리려 고했지만 여전히 작동했습니다.

마법. 그것이 효과가 있다면 때로는 이유를 묻지 않는 것이 좋습니다. 그냥 받아들이고 계속 진행하십시오.

편집 : 문제는 되풀이되는 문제이며 컴파일 타임에 양식 디자이너가 추상 / 일반 양식을 열었을 때 문제를 분리했다고 생각합니다.

교훈 : 컴파일하기 전에 추상 또는 일반 양식 또는 컨트롤의 양식 디자이너가 닫혀 있는지 확인하십시오! 그렇지 않다면 VS를 닫고 다시 열어야합니다!


답변

여기서 발견 한 내용은 다음과 같습니다. 프로젝트 속성 페이지의 디버그 탭에서 “Visual Studio 호스팅 프로세스 활성화”를 선택 취소합니다. 이 속성이 무엇인지 확실하지 않지만 한 번 확인하지 않으면 작업이 수행됩니다.


답변

실제로 “Visual Studio 호스팅 프로세스 활성화”를 선택해야합니다. 어쨌든 적어도 VS2010의 경우. 또한 다음이 있습니다.

존재하는 경우 “$ (TargetPath) .locked”del “$ (TargetPath) .locked”존재하는 경우 “$ (TargetPath)”존재하지 않는 경우 “$ (TargetPath) .locked”move “$ (TargetPath)” “$ (TargetPath) .locked “

사전 빌드 옵션에서. 이 문제는 오랫동안 저를 괴롭 혔습니다. John W.가이 확인란을 언급 할 때까지는이 확인란이 존재하고 낮다는 사실을 알아 차렸고 이미 선택 취소 된 것입니다.

또한 -app-vshost.exe는 디버깅하지 않을 때에도 백그라운드에서 실행됩니다. 이것이 내가 추측 할 때마다 성공적으로 빌드하고 실행하는 이유입니다. 이전에는 실행되지 않았습니다. 또한 디버그 및 릴리스 폴더를 정리하고 대상 유형을 지속적으로 변경하려고 시도했지만 위에서 설명한 것 외에는 아무것도 작동하지 않았습니다. 이전에 내 해결책은 빌드 사이에 5 분만 기다리는 것이 었는데, 작업을 완료하는 데 매우 성 가시고 시간이 많이 소요되었습니다. 나는 어떤 탭이 열려 있는지 또는 XNA 대 Windows가 형성되는지 또는 디자이너가 열리는지가 중요한 행동의 변화를 보지 못했습니다. 이 문제는 32 비트 또는 64 비트 빌드에서 발생했으며 ALT-F4로 앱을 종료했는지 아니면 작업 관리자로 종료했는지에 상관없이 이론적으로 앱이 리소스를 닫거나 해제하는 것을 허용하지 않습니다. 처음에는 쓰레기 수거 문제라고 생각했습니다.


답변

VS2017-Windows 작업 관리자에서 MSBuild.exe의 모든 인스턴스를 닫아 해결됨


답변

조금 늦었지만 프로젝트 속성> “디버그”탭으로 이동하여 “Visual Studio 호스팅 프로세스 활성화”를 선택 취소하여이 문제를 해결합니다.


답변

Windows 탐색기를 사용하여 잠긴 파일의 이름을 변경하여이 문제를 극복했습니다. 파일을 삭제할 수 없었지만 잠긴 파일의 이름을 바꾸면 작동합니다!