Kiedy tworzę i kompiluję „Witaj, świecie!” aplikacji w C #, dostaję trzy pliki w folderze debugowania oprócz głównego pliku exe (np. HelloWorld.exe)
- HelloWorld.vshost.exe
- HelloWorld.pdb
- HelloWorld.vshost.exe.manifest
W jakim celu służą te pliki?
c#
visual-studio
debugging
Milen
źródło
źródło
.exe - „normalny” plik wykonywalny
.vshost.exe - specjalna wersja pliku wykonywalnego ułatwiająca debugowanie; zobacz MSDN dla szczegółów
.pdb - baza danych programu z symbolami debugowania
.vshost.exe.manifest - rodzaj pliku konfiguracyjnego zawierającego głównie zależności od bibliotek
źródło
Plik vshost.exe to plik wykonywalny uruchamiany przez program Visual Studio (plik wykonywalny hosta programu Visual Studio). Jest to plik wykonywalny, który łączy się z Visual Studio i usprawnia debugowanie.
Gdy dystrybuujesz swoją aplikację do innych osób, nie używasz plików vshost.exe ani .pdb (baza danych debugowania).
źródło
Dodając, możesz wyłączyć tworzenie plików vshost dla konfiguracji kompilacji wydania i włączyć ją w celu debugowania .
Kroki
Odniesienie
Fragment z MSDN Jak: wyłączyć proces hostingu
Połączenia z niektórymi interfejsami API mogą mieć wpływ na włączenie procesu hostingu. W takich przypadkach konieczne jest wyłączenie procesu hostingu, aby zwrócić prawidłowe wyniki.
Aby wyłączyć proces hostingu
Gdy proces hostingu jest wyłączony, kilka funkcji debugowania jest niedostępnych lub występuje obniżona wydajność. Aby uzyskać więcej informacji, zobacz Debugowanie i proces hostingu .
źródło
Nie jestem pewien, ale uważam, że jest to optymalizacja debugowania. Jednak zwykle wyłączam go (zobacz Właściwości debugowania dla projektu) i nie zauważam żadnego spowolnienia i nie widzę żadnych ograniczeń, jeśli chodzi o debugowanie.
źródło
Wydaje się, że jest to długo działający proces do debugowania (aby skrócić czas ładowania?). Odkryłem, że po dwukrotnym uruchomieniu aplikacji z debuggera będzie używany ten sam proces vshost.exe. Najpierw zwalnia wszystkie załadowane przez użytkownika biblioteki DLL. Robi to dziwne rzeczy, jeśli wygłupiasz się z haczykami API zarządzanych procesów.
źródło