C#

Visual Studio의 vshost.exe 실행 프로세서 (디버깅 프로그램)

saltdoll 2017. 9. 14. 03:27
반응형

vshost.exe프로세스에 대해서 잘 설명을 해주신 포스트 펌..^^



출처: http://beautyrain.tistory.com/19 [잡동사니]


VS2010으로 개발을 하다가 F5나 Ctrl+F5로 구현한 프로그램을 실행시켜 보면 항상 vshost.exe 파일이 함께 실행된다.

이 vshost.exe 파일은 Visual Studio 2010에서 좀 더 향상된 디버깅 기능을 제공하기 위한 프로세스이다.

MSDN에 보면 vshost.exe 의 역할은 디버깅 성능을 향상시키고 부분 신뢰 디버깅과 

디자인 타임 식 계산을 사용할 수 있도록 도와주는 역할을 한다고 나와있다.

부분 신뢰 디버깅이란 응용 프로그램의 신뢰도가 부분 신뢰로 되어있는 응용 프로그램을 디버깅할 수 있도록 

Application Domain을 초기화 해 주는 역할을 vshost.exe 에서 처리를 담당하고 있다는 의미이고 

디자인 타임 식 계산은 VS2010의 디버깅 모드 중 직접실행 창에서 작성한 코드를 


테스트할 수 있는 기능이 있는데 이 기능을 사용할 수 있도록 도와주는 역할을 vshost.exe가 담당하고 있다는 의미이다.

단, 디자인 타임 식 계산 기능은 일반적인 응용프로그램은 vshost.exe가 없더라도 가능하지만 

Class Library Project와 같은 단독으로 실행될 수 없는 프로젝트는 

vshost.exe 프로세스가 존재해야만 디자인 타임 식 계산이 가능하다.


부분 신뢰 디버깅 기능은 vshost.exe 프로세스가 존재하지 않으면 사용이 불가능하다.

하지만 코드상에서 AppDomain.CurrentDomain.FriendlyName 의 반환 결과를 보면

vshost.exe가 실행되고 있을 때는 app_name.vshost.exe가 반환되고


vshost.exe가 실행되고 있지 않을 때는 app_name.exe가 반환된다.

또한 Assembly.GetCallingAssembly().FullName 의 반환 결과는

vshost.exe가 실행되고 있을 때는 mscorlib가 반환되고

vshost.exe가 실행되고 있지 않을 때는 app_name이 반환된다.


이러한 차이점 때문에 가끔 vshost.exe 프로세스를 종료시켜야 할 경우가 생기는데

위 그림처럼 프로젝트 속성 탭에서 Visual Studio 호스팅 프로세스 사용 을 체크해제 하면

vshost.exe 프로세스가 실행되지 않는다.


반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)