¿Cuál es el propósito del archivo vshost.exe?

Cuando creo y compilo una aplicación “hello world” en C #, obtengo tres archivos en la carpeta Debug aparte del exe principal (p. Ej. HelloWorld.exe)

  1. HelloWorld.vshost.exe
  2. HelloWorld.pdb
  3. HelloWorld.vshost.exe.manifest

¿Para qué sirven estos archivos?

La característica vshost.exe se introdujo con VS2005 (para responder a su comentario).

El objective principal es hacer que el inicio de la depuración sea más rápido, básicamente ya hay un proceso en el que se ejecuta el framework, listo para cargar la aplicación tan pronto como lo desee.

Consulte este artículo de MSDN y esta publicación de blog para obtener más información.

  • .exe – el ejecutable ‘normal’

  • .vshost.exe – una versión especial del ejecutable para ayudar a la depuración; ver MSDN para más detalles

  • .pdb – la base de datos del progtwig con símbolos de depuración

  • .vshost.exe.manifest – un tipo de archivo de configuración que contiene principalmente dependencias de bibliotecas

El archivo vshost.exe es el ejecutable ejecutado por Visual Studio (ejecutable de Visual Studio Host). Este es el ejecutable que se vincula a Visual Studio y mejora la depuración.

Cuando distribuye su aplicación a otros, no usa los archivos vshost.exe o .pdb (depuración de la base de datos).

Además, puede desactivar la creación de archivos vshost para su configuración de comstackción de versión y tenerla habilitada para depurar .

Pasos

  • Propiedades del proyecto > Depurar > Configuración (versión)> Deshabilitar el proceso de alojamiento de Visual Studio
  • Propiedades del proyecto > Depurar > Configuración (depurar)> Habilitar el proceso de alojamiento de Visual Studio

Captura de pantalla de VS2010

Referencia

  1. MSDN Cómo: Deshabilitar el proceso de alojamiento
  2. Proceso de alojamiento de MSDN (vshost.exe)

Extracto de MSDN Cómo: Deshabilitar el proceso de alojamiento

Las llamadas a ciertas API pueden verse afectadas cuando el proceso de alojamiento está habilitado. En estos casos, es necesario deshabilitar el proceso de alojamiento para devolver los resultados correctos.

Para deshabilitar el proceso de alojamiento

  1. Abra un proyecto ejecutable en Visual Studio. Los proyectos que no producen ejecutables (por ejemplo, biblioteca de clases o proyectos de servicio) no tienen esta opción.
  2. En el menú Proyecto , haga clic en Propiedades .
  3. Haga clic en la pestaña Depurar .
  4. Desactive la checkbox Habilitar el proceso de alojamiento de Visual Studio .

Cuando el proceso de alojamiento está deshabilitado, varias características de depuración no están disponibles o experimentan un rendimiento reducido. Para obtener más información, vea Depuración y el Proceso de alojamiento .

En general, cuando el proceso de alojamiento está deshabilitado:

  • El tiempo necesario para comenzar a depurar las aplicaciones .NET Framework aumenta.
  • La evaluación de expresión en tiempo de diseño no está disponible.
  • La depuración de confianza parcial no está disponible.

No estoy seguro, pero creo que es una optimización de depuración. Sin embargo, normalmente lo desactivo (vea Propiedades de depuración para el proyecto) y no noto ninguna desaceleración y no veo limitaciones en lo que respecta a la depuración, por lo que ciertamente no es necesario para la depuración según lo indicado por Guard.

Parece ser un proceso de marco de larga duración para la depuración (¿para disminuir los tiempos de carga?). Descubrí que cuando inicia su aplicación dos veces desde el depurador, a menudo se usará el mismo proceso vshost.exe. Simplemente descarga todas las DLL cargadas por el usuario primero. Esto hace cosas extrañas si estás jugando con los ganchos API de los procesos gestionados.