Wenn ich ein "Hallo Welt!" Anwendung in C #, ich bekomme drei Dateien im Debug-Ordner neben der Haupt-Exe (zB HelloWorld.exe)
- HelloWorld.vshost.exe
- HelloWorld.pdb
- HelloWorld.vshost.exe.manifest
Welchen Zweck erfüllen diese Dateien?
c#
visual-studio
debugging
Milen
quelle
quelle
.exe - die 'normale' ausführbare Datei
.vshost.exe - eine spezielle Version der ausführbaren Datei zur Unterstützung des Debuggens; 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
quelle
Die Datei vshost.exe ist die ausführbare Datei, die von Visual Studio ausgeführt wird (ausführbare Datei des Visual Studio-Hosts). 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).
quelle
Hinzufügen, können Sie die Erstellung von vshost - Dateien für Ihre ausschalten Veröffentlichung Build - Konfiguration und haben es für aktivierte Debug .
Schritte
Referenz
Auszug aus MSDN Gewusst wie: Deaktivieren Sie den Hosting-Prozess
Aufrufe bestimmter APIs können betroffen sein, wenn der Hosting-Prozess aktiviert ist. In diesen Fällen muss der Hosting-Prozess deaktiviert werden, um die korrekten Ergebnisse zurückzugeben.
So deaktivieren Sie den Hosting-Prozess
Wenn der Hosting-Prozess deaktiviert ist, sind mehrere Debugging-Funktionen nicht verfügbar oder es tritt eine Leistungsminderung auf. Weitere Informationen finden Sie unter Debuggen und Hosting .
quelle
Ich bin mir nicht sicher, aber ich glaube, es ist eine Debugging-Optimierung. Normalerweise deaktiviere ich es jedoch (siehe Debug-Eigenschaften für das Projekt) und bemerke keine Verlangsamung und sehe keine Einschränkungen beim Debuggen.
quelle
Es scheint ein langjähriger Framework-Prozess zum Debuggen zu sein (um die Ladezeiten zu verkürzen?). Ich habe festgestellt, dass beim zweimaligen Starten Ihrer Anwendung über den Debugger häufig derselbe Prozess vshost.exe verwendet wird. Es werden nur zuerst alle vom Benutzer geladenen DLLs entladen. Dies macht seltsame Dinge, wenn Sie mit API-Hooks von verwalteten Prozessen herumalbern.
quelle