Какова цель процесса размещения Visual Studio?

165

При отладке программы с использованием Visual Studio вам предоставляется возможность Enable the Visual Studio hosting process. Какова цель этого варианта и как он влияет?

Фредерик Дурак
источник
88
Трудно поверить, что этот вопрос был закрыт как «не настоящий вопрос»! Процесс хостинга достаточно реален, зная, что он делает, важно для любого программиста .NET. Как и любой загадочный вариант на странице настроек Visual Studio, к которому легко добраться. Давайте возьмем это вновь открытые люди.
Ганс Пассант

Ответы:

85

Библиотека MSDN не дает очень хорошей информации о «процессе хостинга». Последние две функции, перечисленные в ссылке Эрика, на самом деле являются проблемами, вызванными этой функцией. Есть еще одна, с которой вам рано или поздно придется столкнуться: она использует другой файл app.config. Активный называется yourapp.vshost.exe.config. Следите за этим, когда вносите изменения в файл вручную.

Еще одна функция, которую он поддерживает, которая хорошо видна при отладке приложения, но нигде не упоминается, - это то, что происходит с выводом, созданным Console.Write (). В приложении без консольного режима оно перенаправляется в окно вывода среды IDE. Очень полезно.

Термин «хостинг» относится к функции CLR, она может быть «размещена». Примерами пользовательских хостов CLR являются SQL Server и ASP.NET. Хостинг позволяет настроить CLR до его начала. Одним из основных применений этого является настройка основного домена приложений и настройка пользовательских политик безопасности. Именно это и делает процесс хостинга.

Хороший пример пользовательского хоста CLR доступен в этом вопросе .

Короче говоря: в режиме отладки вы работаете с настроенной версией CLR, которая улучшает опыт отладки.

Ганс Пассант
источник
4
У меня есть привычка отключать эту функцию в каждом новом проекте. Я столкнулся со странными проблемами при работе с C ++ / CLI WinForms Designer, которые не возникали при отключении этой функции.
заниматься серфингом
Это очень маловероятно, потому что в C ++ IDE не используется процесс хостинга и он не используется в режиме разработки.
Ганс Пассант
2
Кроме того, на веб-сайте Microsoft ( msdn.microsoft.com/en-us/library/ms242202.aspx ) говорится, что он включает отладку с частичным доверием (не знаю, что это) и оценку времени разработки, которую я часто использую оценивать выражения в Немедленном окне. Однако у хостинга есть свои проблемы, как уже отмечалось.
Джей Имерман
5
Процесс хостинга, как правило, поддерживает загрузку библиотек DLL, в которые я хочу писать из другой работающей копии Visual Studio. Завершение процесса хостинга или даже выход и перезапуск вызывающей VS проблемы не помогают, поскольку вновь запущенный процесс хостинга снова загружает DLL. Это причина, почему я обычно отключаю его.
gpvos
Я наблюдаю, что Console.WriteLineжурналы печатаются в окне вывода, даже когда я отключаю Enable the Visual Studio hosting processопцию в окне свойств проекта форм Windows. Не уверен почему.
RBT
17

Из MSDN :

Процесс размещения Visual Studio повышает производительность отладчика и обеспечивает новые функции отладчика, такие как отладка с частичным доверием и оценка выражений во время разработки.

Дарин димитров
источник