Подтвердить что ты не робот

Какова цель файла vshost.exe?

Когда я создаю и компилирую приложение "hello world" в С#, я получаю три файла в папке Debug отдельно от основного exe (например, HelloWorld.exe)

  • HelloWorld.vshost.exe
  • HelloWorld.pdb
  • HelloWorld.vshost.exe.manifest

Какую цель выполняют эти файлы?

4b9b3361

Ответ 1

Функция vshost.exe была представлена с VS2005 (чтобы ответить на ваш комментарий).

Цель этого заключается в том, чтобы ускорить запуск отладки - в основном там уже есть процесс с запущенной средой, просто готов загрузить ваше приложение, как только захочешь.

См. Эту статью MSDN и эту запись в блоге для получения дополнительной информации.

Ответ 2

  • .exe - нормальный исполняемый файл

  • .vshost.exe - специальная версия исполняемого файла, способствующая отладке; Подробнее см. MSDN

  • .pdb - База данных программ с символами отладки

  • .vshost.exe.manifest - своего рода файл конфигурации, содержащий в основном зависимости от библиотек

Ответ 3

Файл vshost.exe - это исполняемый файл, исполняемый Visual Studio (исполняемый исполняемый файл визуальной студии). Это исполняемый файл, который ссылается на Visual Studio и улучшает отладку.

Когда вы распространяете приложение другим, вы не используете файлы vshost.exe или .pdb(debug database).

Ответ 4

Добавляя, вы можете отключить создание файлов vshost для конфигурации сборки Release и включить его для Отладки.

Шаги

  • Свойства проекта > Отладка > Конфигурация (выпуск) > Отключить процесс хостинга Visual Studio
  • Свойства проекта > Отладка > Конфигурация (отладка) > Включить процесс хостинга Visual Studio

Снимок экрана из VS2010

Ссылка

Выдержка из MSDN Как отключить хостинг

При обработке хостинга могут быть затронуты вызовы некоторых API. В этих случаях необходимо отключить процесс хостинга, чтобы вернуть правильные результаты.

Чтобы отключить процесс хостинга

  • Откройте исполняемый проект в Visual Studio. Проекты, которые не создают исполняемые файлы (например, библиотека классов или проекты обслуживания), не имеют этой опции.
  • В меню Проект выберите Свойства.
  • Перейдите на вкладку Отладка.
  • Снимите флажок Включить процесс хостинга Visual Studio.

Когда процесс хостинга отключен, некоторые функции отладки недоступны или имеют пониженную производительность. Для получения дополнительной информации см. Отладка и процесс хостинга.

В целом, когда хостинг-процесс отключен:

  • Время, необходимое для начала отладки приложений .NET Framework, увеличивается.
  • Оценка выражения времени разработки не доступна.
  • Отладка частичного доверия недоступна.

Ответ 5

Я не уверен, но я считаю, что это оптимизация отладки. Тем не менее, я обычно выключаю его (см. Свойства отладки для проекта), и я не замечаю никакого замедления, и я не вижу никаких ограничений, когда дело доходит до отладки, поэтому он, безусловно, не нужен для отладки, как указано Guard.

Ответ 6

Кажется, что это длительный процесс для отладки (для уменьшения времени загрузки?). Я обнаружил, что при запуске приложения дважды из отладчика часто используется тот же процесс vshost.exe. Сначала он выгружает все загруженные пользователем библиотеки DLL. Это делает странные вещи, если вы обманываете API-интерфейсами от управляемых процессов.