Яка мета хостингу 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 до його початку. Одним із основних цілей цього є налаштування основного AppDomain та налаштування спеціальної політики безпеки. Саме цим і займається хостинг.

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

Довга історія: у режимі налагодження ви працюєте із спеціалізованою версією CLR, що покращує досвід налагодження.


4
У мене є звичка відключати цю функцію в кожному новому проекті. У мене виникли дивні проблеми при роботі з C ++ / CLI WinForms Designer, які не виникали, коли ця функція відключена.
surfen

Це дуже малоймовірно, що IDE C ++ не використовує процес хостингу, а також не використовується в режимі проектування.
Ганс Пасант

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параметр із вікна властивостей проекту віконних форм. Не знаю чому.
RBT

17

Від MSDN :

Процес хостингу Visual Studio покращує ефективність налагодження та дозволяє нові функції налагодження, такі як часткова налагодження на довірі та оцінка вираження дизайну та часу


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.