it-swarm.com.de

Was ist der Zweck der Datei vshost.exe?

Wenn ich eine "Hallo Welt" -Anwendung in C # erstelle und kompiliere, werden neben der Haupt-Exe (z. B. HelloWorld.exe) drei Dateien im Debug-Ordner angezeigt.

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

Welchen Zweck erfüllen diese Dateien?

470
Milen

Die Funktion vshost.exe wurde mit VS2005 eingeführt (um Ihren Kommentar zu beantworten).

Der Zweck besteht hauptsächlich darin, den Start des Debuggings zu beschleunigen. Im Grunde läuft bereits ein Prozess mit dem Framework, der nur bereit ist, Ihre Anwendung zu laden, sobald Sie dies wünschen.

Weitere Informationen finden Sie unter dieser MSDN-Artikel und dieser Blog-Beitrag .

407
Jon Skeet
  • .exe - die 'normale' ausführbare Datei

  • .vshost.exe - eine spezielle Version der ausführbaren Datei, um das Debuggen zu unterstützen; Einzelheiten finden Sie unter MSDN

  • .pdb - die Programmdatenbank mit Debug-Symbolen

  • .vshost.exe.manifest - eine Art Konfigurationsdatei , die hauptsächlich Abhängigkeiten von Bibliotheken enthält

172

Die Datei vshost.exe ist die ausführbare Datei, die von Visual Studio (ausführbare Host-Datei von Visual Studio) ausgeführt wird. Dies ist die ausführbare Datei, die eine Verknüpfung zu Visual Studio herstellt und das Debuggen verbessert.

Wenn Sie Ihre Anwendung an andere verteilen, verwenden Sie nicht die Dateien vshost.exe oder .pdb (Debug-Datenbank).

62
Will Eddins

Nach dem Hinzufügen können Sie die Erstellung von vshost-Dateien für Ihre Build-Konfiguration Release deaktivieren und für das Debuggen aktivieren .

Schritte

  • Projekteigenschaften > Debuggen > Konfigurieren (Freigeben)> Deaktivieren Sie Visual Studio Hosting-Prozess
  • Projekteigenschaften > Debug > Konfiguration (Debug)> Aktivieren Sie Visual Studio Hosting-Prozess

Screenshot from VS2010

Referenz

  1. MSDN Gewusst wie: Deaktivieren des Hosting-Prozesses
  2. MSDN Hosting Process (vshost.exe)

Auszug aus MSDN Gewusst wie: Deaktivieren des Hosting-Prozesses

Aufrufe an bestimmte APIs können betroffen sein, wenn der Hosting-Prozess aktiviert ist. In diesen Fällen ist es erforderlich, den Hosting-Prozess zu deaktivieren, um die richtigen Ergebnisse zurückzugeben.

So deaktivieren Sie den Hosting-Prozess

  1. Öffnen Sie ein ausführbares Projekt in Visual Studio. Projekte, die keine ausführbaren Dateien erstellen (z. B. Klassenbibliotheken oder Dienstprojekte), haben diese Option nicht.
  2. Klicken Sie im Menü Projekt auf Eigenschaften .
  3. Klicken Sie auf die Registerkarte Debug .
  4. Deaktivieren Sie das Kontrollkästchen Hostingprozess in Visual Studio aktivieren .

Wenn der Hosting-Prozess deaktiviert ist, stehen einige Debugging-Funktionen nicht zur Verfügung oder die Leistung ist beeinträchtigt. Weitere Informationen finden Sie unter Debugging und Hosting .

Im Allgemeinen, wenn der Hosting-Prozess deaktiviert ist:

  • Die zum Debuggen von .NET Framework-Anwendungen erforderliche Zeit nimmt zu.
  • Die Auswertung des Entwurfszeitausdrucks ist nicht verfügbar.
  • Partial Trust Debugging ist nicht verfügbar.
20
SimplyInk

Ich bin nicht sicher, aber ich glaube, es ist eine Debugging-Optimierung. Normalerweise deaktiviere ich es jedoch (siehe Debug-Eigenschaften für das Projekt), und ich bemerke keine Verlangsamung und sehe keine Einschränkungen beim Debuggen, so dass es für das von Guard angegebene Debuggen mit Sicherheit nicht benötigt wird.

10
Brian Rasmussen

Es scheint ein langwieriger Framework-Prozess für das Debugging zu sein (um Ladezeiten zu verkürzen?). Ich habe festgestellt, dass beim zweimaligen Starten der Anwendung über den Debugger häufig derselbe vshost.exe-Prozess verwendet wird. Es werden nur alle vom Benutzer geladenen DLLs zuerst entladen. Dies macht seltsame Dinge, wenn Sie mit API-Hooks von verwalteten Prozessen herumalbern.

2
Joshua