กระบวนการโฮสติ้ง Visual Studio มีจุดประสงค์อะไร?


165

เมื่อการแก้จุดบกพร่องโปรแกรมใช้ Visual Studio Enable the Visual Studio hosting processคุณจะได้รับตัวเลือกในการ จุดประสงค์ของตัวเลือกนี้นี้คืออะไรและมีผลกระทบอะไรบ้าง


88
ยากที่จะเชื่อว่าคำถามนี้ถูกปิดเนื่องจาก "ไม่ใช่คำถามจริง"! กระบวนการโฮสต์นั้นเพียงพอจริง ๆ แล้วการรู้ว่าการทำอะไรเป็นสิ่งสำคัญสำหรับโปรแกรมเมอร์ NET เช่นเดียวกับตัวเลือกลึกลับในหน้าการตั้งค่า Visual Studio ที่เข้าถึงได้ง่าย มารับกลุ่มคนที่เปิดใหม่นี้กันเถอะ
ฮันส์ Passant

คำตอบ:


85

ไลบรารี MSDN ไม่ได้ให้ข้อมูลที่ดีมากเกี่ยวกับ "กระบวนการโฮสต์" คุณสมบัติสองรายการสุดท้ายที่ระบุไว้ในลิงก์ของ Eric เป็นปัญหาที่เกิดขึ้นจากคุณสมบัติดังกล่าว มีอีกอย่างหนึ่งที่คุณต้องพบเจอไม่ช้าก็เร็ว: มันใช้ไฟล์ app.config อื่น ส่วนที่แอ็คทีฟนั้นชื่อว่า yourapp.vshost.exe.config ระวังสิ่งนี้เมื่อคุณทำการเปลี่ยนแปลงไฟล์

คุณสมบัติอื่นที่รองรับซึ่งมองเห็นได้ชัดเจนเมื่อคุณดีบักแอปของคุณ แต่ไม่ได้กล่าวถึงที่ใดก็คือสิ่งที่เกิดขึ้นกับเอาต์พุตที่ผลิตโดย Console.Write () ในแอพที่ไม่ใช่โหมดคอนโซลแอปจะถูกเปลี่ยนเส้นทางไปยังหน้าต่างผลลัพธ์ของ IDE มีประโยชน์มาก.

คำว่า "โฮสติ้ง" หมายถึงคุณสมบัติของ CLR มันสามารถเป็น "โฮสต์" ตัวอย่างของโฮสต์ CLR ที่กำหนดเองคือ SQL Server และ ASP.NET การให้บริการพื้นที่อนุญาตให้กำหนดค่า CLR ก่อนเริ่มต้น การใช้งานหลักอย่างหนึ่งคือการกำหนดค่า AppDomain หลักและการตั้งค่านโยบายความปลอดภัยที่กำหนดเอง ซึ่งเป็นสิ่งที่กระบวนการโฮสติ้งกำลังทำอยู่

ตัวอย่างที่ดีของโฮสต์ CLR ที่กำหนดเองมีอยู่ในคำถามนี้

เรื่องสั้น ๆ สั้น ๆ : ในโหมดแก้ไขข้อบกพร่องคุณกำลังใช้งาน CLR เวอร์ชันที่กำหนดเองซึ่งเป็นรุ่นที่ปรับปรุงประสบการณ์การดีบัก


4
ฉันมีนิสัยที่จะปิดใช้งานคุณลักษณะนี้ในทุกโครงการใหม่ ฉันพบปัญหาแปลก ๆ เมื่อทำงานกับ C ++ / CLI WinForms Designer ซึ่งไม่ได้เกิดขึ้นเมื่อฟีเจอร์นี้ถูกปิดใช้งาน
ท่อง

ไม่น่าจะมีความเกี่ยวข้อง C ++ IDE ไม่ได้ใช้กระบวนการโฮสติ้งหรือใช้ในโหมดการออกแบบ
Hans Passant

2
นอกจากนี้บนเว็บไซต์ Microsoft ( msdn.microsoft.com/en-us/library/ms242202.aspx ) ระบุว่าสามารถเปิดใช้งานการดีบักความน่าเชื่อถือบางส่วน (ไม่มีเงื่อนงำว่าเป็นอะไร) และการออกแบบการแสดงออกของเวลาที่ฉันใช้บ่อย เพื่อประเมินนิพจน์ในหน้าต่าง Immediate อย่างไรก็ตามโฮสติ้งมีปัญหาตามที่ระบุไว้
Jay Imerman

5
กระบวนการโฮสต์มีแนวโน้มที่จะทำให้โหลด DLLs ที่ฉันต้องการเขียนจากสำเนา Visual Studio อื่นที่กำลังทำงานอยู่ การฆ่ากระบวนการโฮสต์หรือแม้กระทั่งการออกและรีสตาร์ท VS ที่ละเมิดนั้นไม่ได้ช่วยอะไรเพราะกระบวนการโฮสต์ที่เพิ่งเริ่มต้นโหลด DLL อีกครั้ง นี่คือเหตุผลที่ฉันมักจะปิดการใช้งาน
gpvos

ฉันสังเกตว่าConsole.WriteLineบันทึกได้รับการพิมพ์ในหน้าต่างผลลัพธ์แม้ว่าฉันจะปิดการใช้งานEnable the Visual Studio hosting processตัวเลือกจากหน้าต่างคุณสมบัติของหน้าต่างในรูปแบบโครงการ ไม่แน่ใจว่าทำไม
RBT

17

จากMSDN :

กระบวนการโฮสต์ Visual Studio ช่วยปรับปรุงประสิทธิภาพการดีบักเกอร์และเปิดใช้งานคุณสมบัติการดีบักใหม่เช่นการดีบักบางส่วนที่เชื่อถือได้และการประเมินผลนิพจน์ขณะออกแบบ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.