Visual Studio 호스팅 프로세스의 목적은 무엇입니까?


165

Visual Studio를 사용하여 프로그램을 디버깅 할 때 옵션이 제공됩니다 Enable the Visual Studio hosting process. 이 옵션의 목적은 무엇이며 어떤 영향을 미칩니 까?


88
이 질문이 "실제 질문이 아님"으로 종료되었다고 믿기 어렵습니다! 호스팅 프로세스는 실제 .NET 프로그래머에게 중요한 일을 아는 것으로 충분합니다. Visual Studio 설정 페이지의 신비한 옵션은 쉽게 사용할 수 있습니다. 이 사람들을 다시 열어 보도록합시다.
Hans Passant

답변:


85

MSDN 라이브러리는 "호스팅 프로세스"에 대한 정보를 제공하지 않습니다. Eric의 링크에 나열된 마지막 두 기능은 실제로이 기능으로 인해 발생한 문제입니다. 조만간 실행할 수있는 또 다른 것이 있습니다. 다른 app.config 파일을 사용합니다. 활성 이름은 yourapp.vshost.exe.config입니다. 파일을 수동으로 변경할 때이 점을주의하십시오.

지원하는 또 다른 기능은 앱을 디버깅 할 때 매우 잘 보이지만 Console.Write ()에서 생성 된 출력에 대해서는 언급되지 않습니다. 비 콘솔 모드 앱에서는 IDE의 출력 창으로 리디렉션됩니다. 굉장히 유용하다.

"호스팅"이라는 용어는 CLR의 기능을 말하며 "호스팅"될 수 있습니다. 사용자 지정 CLR 호스트의 예는 SQL Server 및 ASP.NET입니다. 호스팅을 통해 CLR을 시작하기 전에 구성 할 수 있습니다. 이를 사용하는 주요 용도 중 하나는 기본 AppDomain을 구성하고 사용자 지정 보안 정책을 설정하는 것입니다. 바로 호스팅 프로세스가 수행하는 작업입니다.

이 질문 에 사용자 정의 CLR 호스트의 좋은 예가 있습니다 .

간단히 말해 : 디버그 모드에서는 디버깅 경험을 향상시키는 사용자 정의 버전의 CLR로 실행 중입니다.


4
모든 새 프로젝트에서이 기능을 비활성화하는 습관이 있습니다. C ++ / CLI WinForms Designer로 작업 할 때이 기능이 비활성화되어 있지 않은 이상한 문제가 발생했습니다.
서핑

C ++ IDE는 호스팅 프로세스를 사용하지 않으며 디자인 모드에서 사용되지 않습니다.
Hans Passant

2
또한 Microsoft 웹 사이트 ( msdn.microsoft.com/en-us/library/ms242202.aspx )에서 부분 신뢰 디버깅 (단순한 내용 없음) 및 자주 사용하는 디자인 타임 식 평가를 사용할 수 있다고 명시합니다. 직접 실행 창에서 표현식을 평가합니다. 그러나 호스팅에는 언급 된대로 문제가 있습니다.
Jay Imerman

5
호스팅 프로세스는 실행중인 다른 Visual Studio 사본에서 쓰려는 DLL을로드하는 경향이 있습니다. 새로 시작된 호스팅 프로세스가 DLL을 다시로드하기 때문에 호스팅 프로세스를 종료하거나 문제가되는 VS를 종료했다가 다시 시작해도 도움이되지 않습니다. 이것이 내가 일반적으로 사용하지 않는 이유입니다.
gpvos

Windows Forms 프로젝트의 속성 창 Console.WriteLine에서 Enable the Visual Studio hosting process옵션을 비활성화해도 로그가 출력 창에 인쇄되는 것을 관찰하고 있습니다. 이유가 확실하지 않습니다.
RBT

17

에서 MSDN :

Visual Studio 호스팅 프로세스는 디버거 성능을 향상시키고 부분 신뢰 디버깅 및 디자인 타임 식 평가와 같은 새로운 디버거 기능을 활성화합니다


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.