c# - una - no puedo depurar en visual studio 2017




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

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?


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.

El archivo vshost.exe es el ejecutable ejecutado por Visual Studio (ejecutable de visual studio host). Este es el ejecutable que enlaza con Visual Studio y mejora la depuración.

Cuando distribuye su aplicación a otros, no utiliza los archivos vshost.exe o .pdb (base de datos de depuració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.


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.





debugging