vshost.exe

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 프로세스가 실행되지 않는다.


퍼옴 : http://beautyrain.tistory.com/19

이 글을 공유하기

댓글

Designed by JB FACTORY