Страницы

Поиск по вопросам

среда, 12 декабря 2018 г.

Зачем нужен .vshost.exe

При создании любого исполняемого .net проекта студия создаёт в выходном каталоге файл /nameOfProj/.vshost.exe Что это за файл? размер его на порядок меньше файла /nameOfProj/.exe и при попытке его запустить ничего не происходит. Зачем он нужен?


Ответ

Вот блог в MSDN, описывающий, для чего нужен этот файл.
Краткая выжимка:
Что это вообще? Это специальный вспомогательный процесс, который ускоряет и облегчает отладку. Например, для старта нового приложения нужно создать AppDomain. А vshost-процесс запущен всё время, и просто грузит приложение в свой AppDomain — ускорение. Плюс его можно настроить для отладки в фоне, пока пользователь набивает текст программы.
Далее, вычисление выражений. Как оно происходит? Очень просто: код компилируется и выполняется. Чтобы не создавать новый процесс, пригождается vshost.
А почему в каталоге bin? Очень просто: загрузка связанных assembly, манифестов и тому подобного работает без дополнительных трюков в лишь «своём» каталоге. Если бы vshost был где-то в другом месте, зависимые модули не загрузились бы.
А что с ним делать? Нужен ли он на клиентской машине? Нет, не нужен, не обращайте на него внимание. Его не нужно запускать вручную.
Я его не хочу, уберите его! Да не вопрос, не хотите — не надо. Заходите в свойства проекта → Debug → Enable Debuggers снимите птичку с Enable the Visual Studio hosting process

А в Visual Studio 2017 vshost отключён. Нужная производительность достигается другими путями.

Комментариев нет:

Отправить комментарий