c# está - ¿Cuál es el propósito del archivo vshost.exe?




depuración la (6)

Parece ser un proceso de marco de larga ejecució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á jugando con los enganches API de los procesos administrados.

Cuando creo y compilo una aplicación "hello world" en C #, obtengo tres archivos en la carpeta Debug aparte del archivo principal (por ejemplo, HelloWorld.exe)

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

¿Para qué sirven estos archivos?


  • .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 programa con símbolos de depuración

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


Agregando, puede desactivar la creación de archivos vshost para su configuración de compilación de la versión y tenerla habilitada para la depuración .

Pasos

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

Referencia

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

Extracto de MSDN Cómo deshabilitar el proceso de hospedaje

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.

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 Depuración .
  4. Desactive la casilla de verificación 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, consulte Depuración y el proceso de alojamiento .

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

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

La función vshost.exe se introdujo con VS2005 (para responder a su comentario).

El objetivo principal es hacer que el inicio de la depuración sea más rápido; básicamente, ya existe un proceso con el marco de trabajo en ejecución, listo para cargar su 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.


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 cuando se trata de depurar, por lo que ciertamente no es necesario para la depuración como lo indica Guard.


Hay un artículo de Wikipedia muy interesante / detallado sobre esto, Ventajas de los conjuntos de instrucciones de la máquina de pila . Tendría que citarlo por completo, por lo que es más fácil simplemente poner un enlace. Simplemente citaré los subtítulos

  • Código objeto muy compacto
  • Compiladores simples / intérpretes simples
  • Estado mínimo del procesador




c# visual-studio debugging