IT이야기

Visual Studio가 빌드 중에 계속 중단되었을때

cyworld 2021. 4. 29. 21:24
반응형

Visual Studio가 빌드 중에 계속 중단됨


내 솔루션을 구축하는 시간의 25 ~ 50 % 사이에 다음과 같이 표시됩니다.

" 요청한 작업을 완료하는 데 예상보다 오래 걸리고 있습니다. 작업이 완료되면이 대화 상자가 닫힙니다. "

설명 할 수없는 방식으로이 창을 싫어합니다. 문제가 해결되지 않고 취소 버튼이 활성화되지 않았으며이를 해결하는 유일한 방법은 devenv 프로세스를 종료하고 전체 솔루션을 다시로드하는 것입니다. 빌드를 시도 할 때도 마찬가지입니다.

내 솔루션은 총 60 개의 프로젝트로, 대부분 C # 클래스 라이브러리이며 각각의 웹 애플리케이션, 웹 서비스 및 콘솔 애플리케이션이 몇 개 있습니다. 그러나 대부분 (50)의 프로젝트가 언로드 된 상태에서 코드베이스의 한 조각을 빌드하더라도 문제가 지속됩니다.

내 문제는 출력 창이 멈춘 시점에서 아무 것도 알려주지 않고이 잠금의 원인을 확인하는 방법을 모른다는 것입니다. 내가 추측한다면, 파일 시스템의 교착 상태라고 생각할 수 있지만,이를 증명하는 방법을 모르겠습니다. 방지하는 방법은 훨씬 적습니다.

다시는 볼 수 없도록 솔루션에서이를 진단하고 제거하려면 어떻게해야합니까? 일반적으로 빌드 중에 발생하는 문제를 어떻게 진단 할 수 있습니까?


비슷한 문제가 발생하면 VS가 45 초 정도 멈춘 다음 4 초 동안 빌드되고 완료됩니다. 45 초의 중단은 GUI에 대한 출력을 생성하지 않으며 VS는 중단됩니다.

ProcMon을 사용하면이 프로젝트를 빌드 할 때 devenv.exe를 통해 / packages / 폴더에서 3 백만 개 이상의 파일 작업을 볼 수 있습니다 (그리고 이후 얼마 동안 계속됨) !! 빌드의 첫 번째 단계에서는 모든 패키지를 확인하여 패키지 복원을 수행해야하는지 확인할 수 있습니다 (그렇지 않았습니다).

모든 것에 대해 NuGet을 비난하는 경향이 있기 때문에 Visual Studio-> 옵션-> Nuget 패키지 관리자-> 일반에서 Nuget 패키지 복원 "누락 된 패키지 다운로드 허용"확인란을 비활성화했습니다 . 기쁘게도 빌드가 매우 빨랐습니다. 총 5 초!

빌드시 패키지 복원을 활성화했으며 (VS에서는 기본적으로 활성화되어 있다고 생각합니다) 패키지를 소스 제어에 체크인했습니다. 이로 인해 TFS가 어떤 식 으로든 스 래시되는 것 같습니다. 패키지 복원을 확인하는 것은 TFS를 트리거하여 일부 소스 제어 작업 확인을 수행해야합니다.

참고로 이것은 VS2013 UPDATE 4-Nuget 버전 : 2.8.50926.663 .. on a sln with NumberOfProjects = 38이지만 2 개의 종속성이있는 단일 csproj를 빌드하기 만하면이 중단을 재현 할 수 있습니다.

최신 정보:

SccNumberOfProjects = 53을 사용하는 Sln의 Localhost“Rebuild All”은 2 분 동안 Visual Studio가 정지 / 응답하지 않고 7:05가 소요되었습니다.

  • 2 코어 i5에서 4:14까지
  • 4 코어 i7에서 2:44까지

또한 : 이것은 다양한 파일 감시자 보안 도구가있는 시스템에 있었으며,이 전체 프로세스에 속도를 추가하지 않았을 가능성이 높습니다.


진단 스위치가 켜진 상태에서 MSBuild가 실행 중일 때 대규모 프로젝트에서 이런 일이 발생하는 것을 보았습니다. Visual Studio에서 도구 / 옵션 / 프로젝트 및 솔루션 / 빌드 및 실행으로 이동 한 다음 MSBuild 프로젝트 빌드 출력 세부 정보 값을 확인합니다. 최소로 설정되지 않은 경우 최소로 설정하고 빌드를 완료 할 수 있는지 확인하십시오.


Visual Studio를 관리자로 실행하면 문제가 해결 된 것 같습니다! (항상 관리자로 프로그램 을 실행하려면 기본적으로 Visual Studio를 관리자로 실행하는 방법을 참조하십시오. )


필자의 경우에는 "최대 병렬 프로젝트 빌드 수"를 1로 설정하는 것이 도움이되었습니다 (즉, 깨끗한 상태에서 프로젝트를 빌드하면 1 분 동안 정지 한 다음 일반 빌드가 발생하고 이후의 모든 빌드가 정상적으로 작동합니다).

앞서 언급 한 설정은에서 설정할 수 있습니다 Tool -> Options -> Projects and Solutions -> Build and Run.


더 큰 프로젝트를 빌드하는 데 Visual Studio가 많이 걸려 있음을 발견했습니다. ReSharper였습니다. 이 기능을 끈 후 : 도구-> 옵션-> ReSharper-> 지금 일시 중지, 모든 것이 문제없이 잘 구축되었습니다 (매우 큰 솔루션, 100 개 이상의 프로젝트에서도).


Microsoft Connect 에 모델링 프로젝트가 동결에 대한 책임이 있다는 제안이있었습니다 . 솔루션에서 모델링 프로젝트를 제거했으며 그 이후로 (약 1 주일) 동결이 발생하지 않았습니다.


나에게 문제는 빌드에서 T4 템플릿을 자동으로 실행하는 확장 프로그램 (AutoT4)이었습니다. EF 솔루션으로 작업 할 때 비활성화하면 문제가 해결되었습니다.


VS 2008 개발 플랫폼을 Windows 7에서 Windows 10으로 옮겼을 때 대규모 프로젝트를 빌드하려고 할 때마다 Visual Studio가 중단되는 상황이 발생했습니다. 프로젝트를 빌드 한 다음 작업 관리자를 사용하여 VS를 종료 한 다음 다시 시작해야했습니다. 말할 필요도없이 이로 인해 디버깅이 정말 어려워졌습니다! 어쨌든 문제는 Win 10으로 이동할 때 VS가 더 이상 관리자로 실행되지 않는다는 것입니다 (그리고 아마도 Win 10은 권한에 대해 더 특별합니다). 프로그램이 관리자 권한으로 실행되도록 속성을 변경하면 문제가 해결되었습니다. (IngoB-게시물에 댓글을 달 수있는 상태가 충분하지 않지만 지적 해 주셔서 감사합니다!)


관리자 모드로 아래 명령을 시도하십시오. 이 명령을 실행하기 전에 모든 VS 인스턴스를 닫아야합니다.

devenv /resetuserdata

참고 : devenv는 C : \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE에 있습니다.


빌드에 대한이 문제를 해결 (또는 거의 해결) 하는 felickz의 답변 외에도 다음과 같습니다.

빌드 중 문제를 제외하고는 패키지 관리 콘솔에도 문제가있었습니다. 기다리는 데 1 분 정도 걸렸습니다. procmon을 사용하여이 창이 열릴 때마다 NuGet 리포지토리 폴더가 구문 분석되었음을 발견했습니다 (매우 똑똑합니다, Microsoft!). 이 폴더에는 약 1000 개의 패키지가 있습니다. 위의 폴더에서 모든 것을 제거한 후 성능 문제가 기저귀가되었습니다.

내 대답은 VS 2015와 관련이 있습니다 (아래에있을 수 있음). 나는 테스트하지 않았지만 VS 2017에서는 괜찮을 것이라고 의심합니다.


나를 위해 그것은 자동으로 실행되는 npm 패키지 설치와 관련이 있습니다. 도구> 옵션> 프로젝트 및 솔루션> 외부 웹 도구로 이동하여 모든 외부 도구를 선택 취소하고 VS를 다시 시작했습니다. 그 후 다시 만들 수있었습니다. 나는 그것들을 확인해야한다는 것을 알고 있지만 무엇이 그들을 유발하는지 그리고이 솔루션 파일의 문제점을 파악해야합니다.


비주얼 스튜디오 2017

설치에서 Anaconda3를 제거하면 문제가 해결되었습니다. procmon에서는 msbuild가 생성 한 수백 개의 powershell 인스턴스에서 Anaconda3 폴더에있는 파일을 찾는 수십만 건의 호출을 보았습니다.

참조 URL : https://stackoverflow.com/questions/19015305/visual-studio-hangs-constantly-during-build

반응형