Question Quel est le but du fichier vshost.exe?


Lorsque je crée et compile une application "hello world" en C #, j'obtiens trois fichiers dans le dossier Debug en dehors de l'exe principal (par exemple HelloWorld.exe)

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

À quoi servent ces fichiers?


449
2018-04-21 19:24


origine


Réponses:


La fonctionnalité vshost.exe a été introduite avec VS2005 (pour répondre à votre commentaire).

Le but est principalement de rendre le lancement du débogage plus rapide - il existe déjà un processus avec le framework en cours d'exécution, juste prêt à charger votre application dès que vous le souhaitez.

Voir cet article MSDN et ce blog pour plus d'informations.


397
2018-04-21 19:30



  • .exe - l'exécutable 'normal'

  • .vshost.exe - une version spéciale de l'exécutable pour faciliter le débogage; voir MSDN pour plus de détails

  • .pdb - le Base de données du programme avec des symboles de débogage

  • .vshost.exe.manifest - une sorte de fichier de configuration contenant principalement des dépendances sur les bibliothèques


161
2018-04-21 19:31



Le fichier vshost.exe est l'exécutable exécuté par Visual Studio (exécutable de l'hôte de studio visuel). C'est l'exécutable qui lie à Visual Studio et améliore le débogage.

Lorsque vous distribuez votre application à d'autres personnes, vous n'utilisez pas les fichiers vshost.exe ou .pdb (base de données de débogage).


58
2018-04-21 19:28



En ajoutant, vous pouvez désactiver la création de fichiers vshost pour votre Libération construire la configuration et l'avoir activé pour Déboguer.

Pas

  • Propriétés du projet > Déboguer > Configuration (Release)> Désactiver le processus d'hébergement Visual Studio
  • Propriétés du projet > Déboguer > Configuration (débogage)> Activer le processus d'hébergement de Visual Studio

Screenshot from VS2010

Référence

  1. MSDN Comment: désactiver le processus d'hébergement
  2. Processus d'hébergement MSDN (vshost.exe)

Extrait MSDN Comment: désactiver le processus d'hébergement

Les appels à certaines API peuvent être affectés lorsque le processus d'hébergement est activé. Dans ces cas, il est nécessaire de désactiver le processus d'hébergement pour retourner les résultats corrects.

Pour désactiver le processus d'hébergement

  1. Ouvrez un projet exécutable dans Visual Studio. Les projets qui ne produisent pas d'exécutables (par exemple, bibliothèque de classes ou projets de service) n'ont pas cette option.
  2. Sur le Projet menu, cliquez sur Propriétés.
  3. Clique le Déboguer languette.
  4. Effacer le Activer le processus d'hébergement Visual Studio case à cocher

Lorsque le processus d'hébergement est désactivé, plusieurs fonctionnalités de débogage sont indisponibles ou subissent une baisse des performances. Pour plus d'informations, voir Débogage et le processus d'hébergement.

En général, lorsque le processus d'hébergement est désactivé:

  • Le temps nécessaire pour commencer le débogage des applications .NET Framework augmente.
  • L'évaluation de l'expression au moment du design n'est pas disponible.
  • Le débogage de confiance partielle n'est pas disponible.

13
2018-05-17 03:26



Je ne suis pas sûr, mais je crois que c'est une optimisation de débogage. Cependant, je le désactive généralement (voir Propriétés du débogage pour le projet) et je ne remarque aucun ralentissement et je ne vois aucune limitation en matière de débogage, donc il n'est certainement pas nécessaire pour le débogage, comme indiqué par Guard.


10
2018-04-21 19:33



Il semble que ce soit un processus de framework long pour le débogage (pour diminuer les temps de chargement?). J'ai découvert que lorsque vous démarrez votre application à deux reprises à partir du débogueur, le même processus vshost.exe sera souvent utilisé. Il décharge simplement toutes les DLL chargées par l'utilisateur en premier. Cela fait des choses étranges si vous vous trompez avec les hooks API des processus gérés.


2
2017-09-10 04:08