web-dev-qa-db-fra.com

Quel est l'objectif du fichier vshost.exe?

Lorsque je crée et compile une application "hello world" en C #, trois fichiers se trouvent dans le dossier Debug en plus du fichier exe principal (par exemple, HelloWorld.exe).

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

A quoi servent ces fichiers?

470
Milen

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 - en gros, il existe déjà un processus avec le framework en cours d'exécution, prêt à charger votre application dès que vous le souhaitez.

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

407
Jon Skeet
  • .exe - l'exécutable 'normal'

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

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

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

172
Daniel Brückner

Le fichier vshost.exe est l'exécutable exécuté par Visual Studio (exécutable de visual studio Host). C'est l'exécutable qui relie à 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).

62
Will Eddins

En ajoutant, vous pouvez désactiver la création de fichiers vshost pour votre configuration de version Release et l'activer pour le débogage .

Étapes

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

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 de 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 renvoyer 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, les projets de bibliothèque de classe ou de service) n'ont pas cette option.
  2. Dans le menu Projet , cliquez sur Propriétés .
  3. Cliquez sur l'onglet Debug .
  4. Décochez la case Activez le processus d'hébergement Visual Studio .

Lorsque le processus d'hébergement est désactivé, plusieurs fonctionnalités de débogage ne sont pas disponibles ou les performances diminuent. Pour plus d'informations, voir processus de débogage et 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.
20
SimplyInk

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 de débogage pour le projet) et je ne remarque aucun ralentissement et je ne vois aucune limite en ce qui concerne le débogage. Ce n'est donc certainement pas nécessaire pour le débogage, comme l'a déclaré Guard.

10
Brian Rasmussen

Cela semble être un processus de longue durée pour le débogage (pour réduire les temps de chargement?). J'ai découvert que lorsque vous démarrez votre application deux fois à partir du débogueur, le même processus vshost.exe sera souvent utilisé. Il décharge tout d'abord toutes les DLL chargées par l'utilisateur. Cela fait des choses étranges si vous vous amusez avec les points d'ancrage d'API provenant de processus gérés.

2
Joshua