Apa tujuan dari Proses Visual Studio Hosting?

165

Saat men-debug sebuah program menggunakan Visual Studio Anda diberi pilihan untuk Enable the Visual Studio hosting process. Apa tujuan dari opsi ini dan apa efeknya?

Frederick The Fool
sumber
88
Sulit dipercaya pertanyaan ini ditutup sebagai "bukan pertanyaan nyata"! Proses hosting cukup nyata, mengetahui apa yang dilakukannya itu penting bagi programmer .NET. Seperti halnya opsi misterius di halaman pengaturan Visual Studio yang mudah dijangkau. Mari kita buka kembali orang-orang ini.
Hans Passant

Jawaban:

85

Pustaka MSDN tidak memberikan informasi yang sangat bagus tentang "proses hosting". Dua fitur terakhir yang tercantum dalam tautan Eric sebenarnya merupakan masalah yang disebabkan oleh fitur tersebut. Ada satu lagi yang Anda akan temui cepat atau lambat: ia menggunakan file app.config yang berbeda. Yang aktif bernama yourapp.vshost.exe.config. Perhatikan hal ini saat Anda membuat perubahan manual pada file.

Fitur lain yang didukungnya sangat terlihat ketika Anda men-debug aplikasi Anda tetapi tidak disebutkan di mana pun adalah apa yang terjadi pada output yang dihasilkan oleh Console.Write (). Dalam aplikasi mode non-konsol, itu akan dialihkan ke jendela Output IDE. Sangat berguna.

Istilah "hosting" mengacu pada fitur CLR, itu dapat "dihosting". Contoh host CLR kustom adalah SQL Server dan ASP.NET. Hosting memungkinkan seseorang untuk mengkonfigurasi CLR sebelum memulai. Salah satu penggunaan utama ini adalah mengkonfigurasi AppDomain utama dan mengatur kebijakan keamanan khusus. Inilah yang dilakukan proses hosting.

Contoh yang bagus dari host CLR khusus tersedia dalam pertanyaan ini .

Singkat cerita: dalam mode debug Anda menjalankan dengan versi CLR yang disesuaikan, yang meningkatkan pengalaman debugging.

Hans Passant
sumber
4
Saya memiliki kebiasaan menonaktifkan fitur ini di setiap proyek baru. Saya pernah mengalami masalah aneh ketika bekerja dengan C ++ / CLI WinForms Designer, yang tidak terjadi dengan fitur ini dinonaktifkan.
Berselancar
Itu sangat tidak mungkin relevan, C ++ IDE tidak menggunakan proses hosting juga tidak digunakan dalam mode desain.
Hans Passant
2
Juga, di situs web Microsoft ( msdn.microsoft.com/en-us/library/ms242202.aspx ) ini menyatakan bahwa ia mengaktifkan Partial Trust Debugging (tidak ada petunjuk apa itu), dan Evaluasi Ekspresi Waktu Desain, yang sering saya gunakan untuk mengevaluasi ekspresi di jendela Immediate. Namun, hosting memang memiliki masalah seperti yang disebutkan.
Jay Imerman
5
Proses hosting cenderung terus memuat DLL yang ingin saya tulis ke dari menjalankan Visual Studio. Membunuh proses hosting, atau bahkan keluar dan memulai kembali VS yang menyinggung, tidak membantu, karena proses hosting yang baru dimulai memuat DLL lagi. Inilah alasan mengapa saya biasanya menonaktifkannya.
gpvos
Saya mengamati bahwa Console.WriteLinelog bisa dicetak di jendela keluaran bahkan ketika saya menonaktifkan Enable the Visual Studio hosting processopsi dari jendela properti proyek bentuk windows. Tidak yakin kenapa.
RBT
17

Dari MSDN :

Proses hosting Visual Studio meningkatkan kinerja debugger dan mengaktifkan fitur debugger baru, seperti debugging parsial-kepercayaan dan evaluasi ekspresi desain-waktu

Darin Dimitrov
sumber