วิธีหยุดเบราว์เซอร์ปิดโดยอัตโนมัติเมื่อคุณหยุดการดีบักใน VS 2017


338

ฉันลองใช้ VS 2017 RC ใหม่และสงสัยว่าใครรู้วิธีการแก้ไขข้อบกพร่องก่อนหน้านี้

ใน VS 2015 มันเป็นแบบนี้:

กดเริ่มการดีบัก

  • เว็บไซต์เปิดในแท็บ Chrome ใหม่
  • กดหยุดการดีบัก
  • เว็บไซต์ยังคงเปิดอยู่และไซต์ยังคงทำงาน / เปิดใช้งานอยู่

ตอนนี้ในปี 2560:

  • กดเริ่มการดีบัก
  • เว็บไซต์เปิดในหน้าต่างใหม่ที่ไม่สามารถเทียบชิดขอบกับหน้าต่าง / แท็บ Chrome อื่น ๆ
  • กดหยุดการดีบัก
  • หน้าต่างเว็บไซต์ / Chrome ปิดลงไม่สามารถใช้งานไซต์ต่อไปได้เว้นแต่ฉันจะไปที่หน้าต่าง localhost ใน Chrome ด้วยตนเอง

เป็นไปได้หรือไม่ที่ในปี 2560 ที่จะเปลี่ยนกลับเป็นสไตล์ปี 2015 ดังนั้นหน้าต่าง Chrome / เว็บไซต์จึงสามารถเชื่อมต่อกับหน้าต่าง / แท็บ Chrome อื่น ๆ และจะยังคงเปิดอยู่หลังจากที่คุณหยุดการดีบั๊กหรือไม่

นอกจากนี้ฉันพบว่าหน้าต่าง Chrome ใหม่น่าผิดหวังเนื่องจากดูเหมือนว่าจะไม่มีประวัติ / เนื้อหาใด ๆ เช่นฉันไม่สามารถกรอกฟอร์มอัตโนมัติหรือ URL ซึ่งน่ารำคาญมากเมื่อฉันพยายามทดสอบแบบฟอร์ม

คำตอบ:


585

Visual Studio 2017 รุ่น 15.7 และสูงกว่า & Visual Studio 2019เปลี่ยนสิ่งต่าง ๆ อีกครั้ง

การปิดใช้งานช่องทำเครื่องหมายต่อไปนี้จะช่วยให้คุณเปิดเบราว์เซอร์ไว้ (ไม่ปิดหลังจากหยุดการดีบัก) และเปิดแท็บอื่น (แทนหน้าต่างอื่น):

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

เครื่องมือ> ตัวเลือก> การดีบัก> ทั่วไป

  • ปิดการใช้งาน "เปิดใช้งานการดีบัก JavaScript สำหรับ ASP.NET (Chrome, Edge และ IE)"

เครื่องมือ> ตัวเลือก> โครงการและโซลูชัน> โครงการบนเว็บ

  • ( Visual Studio 2017 ) ปิดการใช้งาน "Stop debugger เมื่อปิดหน้าต่างเบราว์เซอร์"
  • ( Visual Studio 2019 ) ปิดการใช้งาน "Stop ดีบักเกอร์เมื่อปิดหน้าต่างเบราว์เซอร์ปิดเบราว์เซอร์เมื่อทำการดีบั๊กหยุด"

ดูเพิ่มเติมที่รายงานข้อผิดพลาดที่เกี่ยวข้องในชุมชนนักพัฒนาของ Microsoft
Uwe Keim

112
ผู้ที่เพิ่มคุณสมบัตินี้และคิดว่าใช่สมบูรณ์แบบ มันน่ารำคาญมาก!
Jon

2
โปรดระบุวิธีแก้ปัญหาข้อความเมื่อรูปภาพถูกลบ ฯลฯ
mohas

18
สำหรับ VS 2019: หากใครก็ตามที่กำลังมองหาตัวเลือกสุดท้าย (Stop Debugger เมื่อปิดหน้าต่างเบราว์เซอร์) พวกเขาย้ายไปที่เครื่องมือ> ตัวเลือก> โครงการและการแก้ปัญหา> โครงการเว็บ> หยุดการดีบักเมื่อปิดหน้าต่างเบราว์เซอร์ หยุด ดูภาพ
jag

1
@jag ขอบคุณฉันรวมไว้ในคำแนะนำ
jerone

83

สาเหตุของการเปลี่ยนแปลงพฤติกรรมนั้นเกิดจากการสนับสนุนการดีบัก JavaScript / TypeScript ที่ทำงานใน Chrome ดูประกาศที่นี่https://blogs.msdn.microsoft.com/webdev2016/11/21/client-side-debugging-of-asp-net-projects-in-google-chrome/

หากต้องการกลับสู่พฤติกรรมปี 2015 ที่ไม่ได้ปิด Chrome ในการดีบักเกอร์ให้ปิดการใช้งานดีบักเกอร์สคริปต์ IE / Chrome ในเครื่องมือ -> ตัวเลือกดังนี้:

ตัวเลือกการดีบักเกอร์


8
สิ่งนี้ไม่ทำงานสำหรับฉันจนกว่าฉันจะปิด "เปิดใช้งานการแก้ไขและดำเนินการต่อ" ( stackoverflow.com/questions/20831676/… ) ฉันคิดว่าการเปลี่ยนแปลงทั้งสองอย่างร่วมกันเป็นทางออกที่สมบูรณ์
JoaoRibeiro

4
ไม่ทำงานใน vs2017 แม้หลังจากปิดใช้งานแล้วEdit and Continue
ahmad molaie

24

สำหรับผู้ที่อัปเดตเป็น Visual Studio 2019 ตอนนี้การกำหนดค่านั้นอยู่ภายใต้เครื่องมือ> ตัวเลือก ...

จากนั้นในกล่องโต้ตอบตัวเลือก (ดูภาพด้านล่าง) โครงการและโซลูชัน> โครงการเว็บ:
ยกเลิกการเลือกStop debugger when broswer window is closed, close browser when debugging

ป้อนคำอธิบายรูปภาพที่นี่


หากต้องการยกเลิกการเลือกตัวเลือกนี้จะไม่เพียงพอ เมื่อคุณปิดเบราว์เซอร์ดีบักเกอร์ก็จะหยุดเช่นกัน
FrenkyB

@FrenkyB ฉันแค่เดาว่าคุณต้องปิดและเปิดอินสแตนซ์สตูดิโอภาพทั้งหมดของคุณอีกครั้งเนื่องจาก vs debugger ไม่หยุดทำงานเมื่อฉันปิดเบราว์เซอร์
Jean-Sébastien Gervais

19

ฉันเขียนคำตอบนี้เนื่องจากฉันคิดว่าคำตอบก่อนหน้านี้ครอบคลุมเพียงครึ่งหนึ่งของปัญหา

สิ่งแรกที่คุณต้องการคือกำจัด 'เรียกใช้ chrome เป็นหน้าต่างใหม่และปิดอัตโนมัติเมื่อหยุดการดีบั๊ก' ที่น่ารำคาญนี้

เครื่องมือ→ตัวเลือก→ยกเลิกการเลือกเปิดใช้งานการดีบัก JavaScript สำหรับ ASP.NET

หลังจากทำเช่นนั้นเมื่อเริ่มการแก้ไขข้อบกพร่องโครเมี่ยมเปิดแท็บใหม่หลังจากหยุดแท็บไม่ได้ปิด แต่เว็บไซต์รีเฟรชจะแสดงหน้าจอสีขาว

อีกครั้งในเครื่องมือ→ตัวเลือก

ยกเลิกการเลือกเปิดใช้งานการแก้ไขและดำเนินการต่อ

ตั้งแต่ตอนนี้คุณมีพฤติกรรมเดิมของคุณกลับมาแล้ว

หน้าต่างตัวเลือก


3
ด้วย VS 15.7.0 จำเป็นต้องใช้ตัวเลือกทั้งสอง (ก่อนคำตอบที่ได้รับการตอบรับเพียงพอ)
Stefan

1
@Stefan ถูกต้อง; คุณต้องปิดใช้งานตัวเลือกทั้งสองทันที แต่ก่อนหน้านี้มันจะเปิดแท็บและตอนนี้จะเปิดอินสแตนซ์อื่นของเบราว์เซอร์ที่เลือก
jerone

แต่ฉันต้องการแก้ไขและดำเนินการต่อสำหรับรหัสฝั่งเซิร์ฟเวอร์ทำไมพวกเขาถึงเกี่ยวพันกัน
ethermal

คำตอบของ @ethermal jerone (โครงการเว็บ -> หยุดการดีบักเกอร์ไม่ได้ทำเครื่องหมาย) ทำงานโดยไม่ปิดใช้งานการแก้ไขและดำเนินการต่อ
Steve Greene

2

ไปที่เครื่องมือ -> ตัวเลือกและค้นหา " Stop Debugger " จากนั้นเลือกโหนดโครงการเว็บภายใต้โครงการและโซลูชัน ยกเลิกการเลือก " หยุดการดีบั๊กเมื่อปิดหน้าต่างเบราว์เซอร์ " ก่อนตัวเลือกนี้คุณควรใช้คำแนะนำของ@jerone

PS: ตัวเลือกนี้สามารถใช้ได้หลังจาก VS เวอร์ชัน 15.7


1

มีสองวิธีในการทำสิ่งนี้:

  1. เปิดใช้โดยไม่มีการดีบักโดยกด ctrl + f5 หรือ
  2. เรียกใช้งานด้วยการดีบัก (กด f5) จากนั้นไปที่เมนูดีบั๊กและกด "แยกทั้งหมด"

หวังว่าจะช่วย


6
ฉันไม่คิดว่าคำตอบจะตอบปัญหาเวิร์กโฟลว์ / การดีบักอันยิ่งใหญ่นี้จริงๆ ประเด็นก็คือในปี 2015 คุณสามารถเปิดใช้งานอินสแตนซ์ Chrome ที่มีอยู่แล้วและยังคงดีบักรหัสเซิร์ฟเวอร์ใน VS ไม่มีวิธีที่สมเหตุสมผลในการทำเช่นนี้กับ 2017 คุณไม่ควร 'แยกออก' ทุกครั้งที่คุณเปิดแอปและปิด Chrome พิเศษที่โผล่ขึ้นมา ฯลฯ ไม่ให้ Michael B. ลำบาก รำคาญมากกับ MS เกี่ยวกับปัญหานี้ หวังว่าจะมีวิธีแก้ปัญหาที่ดีกว่าในการกลับไปใช้เวิร์กโฟลว์การดีบัก 2015 ที่เหมาะสม
Austin Harris

4
@ ออสตินขอขอบคุณสำหรับความคิดเห็นนี้ ฉันจะส่งต่อไปยังทีม (ฉันทำงานกับ Visual Studio ที่ Microsoft)
Michael Braude

3
@MichaelBraude ใช่นี่เป็นก้าวสำคัญในการเพิ่มผลผลิต
Spongman

1
ตามที่ Mads บอกไว้คุณสามารถปิดการทำงานใหม่ได้หากคุณไม่ชอบ ขอบคุณสำหรับข้อเสนอแนะ!
Michael Braude

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