SYSK 31: Wondering what is vhost.exe, and why you need it? Then read on…

By default, when you build a Visual Studio 2005 project, you get two executables created, the “normal” one (your windows application) and then the one with vhost.exe appended to the end of your application name, e.g. WindowsApplication1.vhost.exe.

vhost is a hosting process used by Visual Studio (read: you should not run it directly) that improves debugging performance, enables partial trust debugging, and enables design time expression evaluation.

Improved Debugging Performance
The hosting process creates an application domain and associates the debugger with the application. Performing these tasks can introduce a noticeable delay between the time debugging is started and the time the application begins running. The hosting process helps increase performance by creating the application domain and associating the debugger in the background, and saving the application domain and debugger state between runs of the application.

Partial Trust Debugging
An application can be specified as a partial trust application in the Security page of the Project Designer. Debugging a partial trust application requires special initialization of the application domain. This initialization is handled by the hosting process.

Design-Time Expression Evaluation
Design-time expression evaluation enables you to test code from the Immediate window without having to run the application. The hosting process executes this code during design time expression evaluation.

You can disable the usage of the hosting process by clearing the “Enable the Visual Studio hosting process” check box in project properties on the Debug tab.  You may want to try this if you’re getting unexpected failures when calling some APIs during the VS debugging, and are not getting them when running the application outside of the debugger.

Reference:   http://msdn2.microsoft.com/en-us/library/ms185331.aspx