แก้ไขและดำเนินการต่อ:“ ไม่อนุญาตให้ทำการเปลี่ยนแปลงเมื่อ…”


108

แม้ว่าฉันจะสร้างโปรเจ็กต์ WinForms ที่สะอาด แต่การแก้ไขและดำเนินการต่อก็ไม่ทำงานและให้ข้อผิดพลาดแก่ฉัน:

ไม่อนุญาตให้ทำการเปลี่ยนแปลงเมื่อตัวดีบักเกอร์ถูกแนบกับกระบวนการที่รันอยู่แล้วหรือโค้ดที่กำลังดีบักได้รับการปรับให้เหมาะสมในเวลาสร้างหรือรัน

  1. ตัวเลือกแก้ไขและดำเนินการต่อถูกตรวจสอบในเครื่องมือ→ตัวเลือก→การดีบัก
  2. ไม่ได้เปิดใช้งานการเพิ่มประสิทธิภาพ
  3. ดูเหมือนว่าไม่มีการตั้งค่าโปรไฟล์ที่มีการจัดการใด ๆ
  4. ฉันกำลังทำงานในโหมด Debug
  5. ฉันใช้ CPU x64 และ Windows XP 32 บิต แต่การตั้งค่าเป้าหมายแพลตฟอร์มเป็น x86 แทนที่จะเป็น AnyCpu ไม่ได้ช่วย
  6. การซ่อมแซมการติดตั้ง Visual Studio ไม่ได้ช่วยอะไร

ฉันพบบทความนี้ในเว็บไซต์ MSDN ด้วย:

สถานการณ์ที่ไม่รองรับ

แก้ไขและดำเนินการต่อไม่สามารถใช้ได้ในสถานการณ์การดีบักต่อไปนี้:

  • การดีบักบน Windows 98

  • การดีบักโหมดผสม (เนทีฟ / จัดการ)

  • การดีบัก SQL

  • การดีบักการถ่ายโอนข้อมูลของ Dr.Watson

  • การแก้ไขโค้ดหลังจากข้อยกเว้นที่ไม่สามารถจัดการได้เมื่อไม่ได้เลือกตัวเลือก "Unwind the call stack on unhandled exceptions"

  • การดีบักแอปพลิเคชันรันไทม์แบบฝัง

  • การดีบักแอปพลิเคชันด้วย Attach to แทนที่จะเรียกใช้แอปพลิเคชันด้วย Start จากเมนู Debug

  • การดีบักโค้ดที่ปรับให้เหมาะสม

  • การดีบักโค้ดที่มีการจัดการเมื่อเป้าหมายเป็นแอปพลิเคชัน 64 บิต หากคุณต้องการใช้ Edit and Continue คุณต้องตั้งค่าเป้าหมายเป็น x86 (คุณสมบัติโครงการแท็บคอมไพล์การตั้งค่าคอมไพเลอร์ขั้นสูง)

  • การดีบักโค้ดเวอร์ชันเก่าหลังจากสร้างเวอร์ชันใหม่ไม่สำเร็จเนื่องจากข้อผิดพลาดในการสร้าง

แต่ฉันตอบได้ว่า "ไม่" ทุกรายการในรายการนี้

มันใช้งานได้ก่อนหน้านี้ แต่หลายวันที่ผ่านมามันหยุดทำงานและฉันไม่รู้ว่าอะไรเป็นสาเหตุ


2
คุณกำลังทำงานในโหมดเผยแพร่หรือไม่ คุณใช้ X64 หรือไม่
Sam Saffron

วิธีที่คุณพยายาม E&C สั้นจริงหรือ? บางทีมันอาจจะอินไลน์ (แม้ว่าฉันคิดว่าอินไลน์ไม่ได้เกิดขึ้นในการดีบัก)
Sam Saffron

ใช้ไม่ได้กับวิธีการใด ๆ ทั้งสั้นมากหรือยาวมาก
nightcoder

คุณลองติดตั้งซ่อมแซมหรือยัง
Richard Anthony Hein

3
ฉันเดาว่าฉันควรเพิ่มว่า E&C เป็นคุณสมบัติที่ค่อนข้างซับซ้อน เมทริกซ์ทดสอบของดีบักเกอร์นั้นใหญ่มากและการทำให้ E&C ทำงานในทุกชุดค่าผสมนั้นยากมาก แต่เป็นคุณสมบัติที่สำคัญมากเช่นกันดังนั้นเราจึงมีข้อ จำกัด มากมายเพื่อให้แน่ใจว่าจะจัดส่งได้ ภายใต้ข้อ จำกัด โดยเจตนาที่เราวางไว้นี่เป็นหนึ่งในคุณสมบัติคุณภาพสูงสุดที่เราจัดส่ง
Jay Bazuzi

คำตอบ:


21

ในที่สุดฉันก็สามารถแก้ปัญหาได้: ถอนการติดตั้ง Gallio

Gallio ดูเหมือนจะมีขอบที่ค่อนข้างหยาบและดีกว่าที่จะไม่ใช้ MbUnit 3.0 แต่ใช้เฟรมเวิร์ก MbUnit 2.0 แต่ใช้ Gallio runner ซึ่งคุณกำลังทำงานโดยไม่ต้องติดตั้งจากโปรแกรมติดตั้ง (ซึ่งติดตั้งปลั๊กอิน Visual Studio ด้วย)

บังเอิญฉันมีปัญหาแม้ว่าจะ "ปิดใช้งาน" ปลั๊กอิน Gallio แล้วก็ตาม เฉพาะการถอนการติดตั้งเท่านั้นที่แก้ไขปัญหาได้

ปล. แก้ไขโดย nightcoder:
ในกรณีของฉันการปิดใช้งาน TypeMock Isolator (กรอบการเยาะเย้ย) ในที่สุดก็ช่วยได้ ! แก้ไขและดำเนินการต่อได้ทันที !!!

นี่คือคำตอบจากฝ่ายสนับสนุน TypeMock:

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


69

โซลูชันอื่น ๆ ที่เกี่ยวข้อง

ด้านล่างนี้เป็นรายการวิธีแก้ไขที่เป็นไปได้ที่ไม่สมบูรณ์และไม่ได้เรียงลำดับเพื่อลองหากคุณ * กำลังพยายามแก้ไข Edit & Continue อย่างรวดเร็ว

  • ตรวจสอบว่าคุณอยู่ในโหมดดีบัก
  • ตรวจสอบให้แน่ใจว่าคุณไม่ได้เปิดตัวกระบวนการโหมดผสม
  • พยายามกำหนดเป้าหมาย CPU เป็นx86แทนที่จะเป็นAnyCPU (บนเครื่อง x64)
  • ยกเลิกการเลือกช่องทำเครื่องหมายOptimize Codeสำหรับโหมด DebugในProject Properties-> Debug
  • ยกเลิกการเลือกEnable OptimizationsในAdvanced Compiler Settings
  • (ASP.NET) ตรวจสอบคำตอบของคนขับรถกลางคืนว่าเป็นเช่นนั้นหรือไม่
  • (ASP.NET) ตรวจสอบคำตอบนี้ (โดย matrixugly)หากเป็นเช่นนั้น
  • (ASP.NET) ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งานการแก้ไขและดำเนินการต่อบนแท็บเว็บ (vs2010)
  • (ASP.NET) ไปที่Properties> เว็บ> เซิร์ฟเวอร์และให้แน่ใจว่าเปิดใช้งานและยังคงมีการตรวจสอบภายใต้การใช้ Visual Studio พัฒนาเซิร์ฟเวอร์
  • (ASP.NET WebAPI) ตรวจสอบให้แน่ใจว่าคุณได้หยุดในวิธีการของคอนโทรลเลอร์โดยใช้เบรกพอยต์ก่อนที่จะพยายามแก้ไข
  • (เทียบกับ 2017) ไปที่Tools> Options> Debuggingและยกเลิกการเลือก (ยกเลิกการเลือก) 'Edit and Continue' นี่เป็นสิ่งที่ตรงกันข้ามกับคำแนะนำ 'ธรรมดา' (ดูประเด็นอื่น ๆ ในโพสต์นี้) ไม่อนุญาตให้คุณทำการเปลี่ยนแปลงในโปรแกรมที่กำลังทำงานอยู่ (กล่าวคือไม่ได้ทำการ hot-swap การเปลี่ยนแปลงโค้ดที่คุณทำ) - เพียงแค่ให้คุณแก้ไขรหัสของคุณ (กล่าวคือป้องกันข้อความที่น่ารำคาญและ "ล็อก" ตัวแก้ไขของคุณ ).
  • ไปที่Tools> Options> Debugging> Generalและตรวจสอบให้แน่ใจว่าRequire source files ตรงกับเวอร์ชันดั้งเดิมทุกประการไม่ได้เลือกไว้
  • เลือกเปิดใช้งานตัวจัดสรรฮีปดีบักของ Windows (เฉพาะเนทีฟเท่านั้น) [VS Community 2017]
  • คุณใช้ Microsoft Fakes หรือไม่ ยับยั้งการแก้ไขและดำเนินการต่อ
  • ฆ่าทุก* .vshost.exeกรณีโดยการเลือกกระบวนการสิ้นสุดต้นไม้ในที่ Task Manager VS จะสร้างอินสแตนซ์ที่ถูกต้องขึ้นมาใหม่
  • ลบจุดพักทั้งหมดด้วยDebug-> Delete All Breakpoints
  • เปิดใช้งานและดำเนินการต่อที่มีอยู่ในทั้งเครื่องมือ> ตัวเลือก> การแก้จุดบกพร่องเมนูและยังอยู่ในการตั้งค่าโครงการ อย่าลืมตรวจสอบทั้งสองแห่ง แก้ไขและดำเนินการต่อไม่รองรับการตั้งค่า Intellitrace แบบขยาย
  • ตรวจสอบว่าข้อมูลการดีบักในคุณสมบัติโครงการ> สร้าง> ขั้นสูง> ผลลัพธ์> ข้อมูลการดีบักถูกตั้งค่าเป็นแบบเต็ม
  • ปลั๊กอินบางตัวอาจรบกวน ตรวจสอบโดยการปิด / ถอนการติดตั้งจากนั้นลองวิธีแก้ไขปัญหาอื่นอีกครั้ง
  • หากคุณให้ความสนใจไม่เพียงพอข้อผิดพลาดที่คุณได้รับขณะพยายามแก้ไขปัญหานี้อาจเปลี่ยนเป็นอย่างอื่นที่วินิจฉัยได้ง่ายกว่า เช่นเมธอดที่มีนิพจน์แลมบ์ดาไม่สามารถรองรับการแก้ไขและดำเนินการต่อได้
  • ตรวจสอบให้แน่ใจตัวแปรระบบไม่ได้ตั้งค่าCOR_ENABLE_PROFILING 1ผู้สร้างโปรไฟล์บางคนตั้งค่านี้เมื่อติดตั้งและปล่อยไว้เช่นนั้นหลังจากถอนการติดตั้ง เปิดพรอมต์คำสั่งและพิมพ์setเพื่อตรวจสอบอย่างรวดเร็วว่าระบบของคุณได้รับผลกระทบหากเป็นเช่นนั้นให้ลบตัวแปรหรือตั้งค่าเป็น0:

    • ใน Windows 8 ขึ้นไปให้ค้นหาSystem (แผงควบคุม)
    • คลิกลิงก์การตั้งค่าระบบขั้นสูง
    • คลิกตัวแปรของสภาพแวดล้อม
    • ลบ COR_ENABLE_PROFILING
  • จะตระหนักถึงสถานการณ์ที่ไม่สนับสนุน (รายงานในคำถาม) และการแก้ไขที่ไม่สนับสนุน


* โดย 'คุณ' ฉันหมายถึงผู้เยี่ยมชมเพจที่กำลังทุบหัวของเขาบนแป้นพิมพ์เพื่อค้นหาวิธีแก้ปัญหา


อย่าลังเลที่จะแก้ไขคำตอบนี้เพื่อเพิ่มวิธีแก้ปัญหาของคุณหากไม่มีอยู่ในรายการนี้!


5
มันคือ COR_ENABLE_PROFILING ... ไม่รู้ว่าทำไมถึงถูกตั้งค่า ขอบคุณ. หยุดตอกหัวฉันบนแป้นพิมพ์เดี๋ยวนี้
Florian Lagg

2
ฉันพยายามทุกอย่างยกเว้นได้ผล จากนั้นฉันก็รู้ว่าฉันต้องอยู่ในโหมดหยุดพัก (debug-> break all) หรือที่จุดพัก โปรดเพิ่มสิ่งนี้ในรายการของคุณ msdn.microsoft.com/en-us/library/7932e88z.aspx
Niloofar

1
ได้ผลสำหรับฉันขอบคุณบรรทัดที่สี่ "ยกเลิกการเลือกช่องทำเครื่องหมายรหัสเพิ่มประสิทธิภาพสำหรับโหมดดีบักในคุณสมบัติโครงการ -> ดีบัก"
Aljohn Yamaro

2
สิ่งหนึ่งที่แก้ไขได้สำหรับผมที่ไม่ได้กล่าวถึงที่นี่: ผมต้องโรคสามารถ (ยกเลิก)“เปิดใช้งานแก้ไขและดำเนินการต่อ” ตัวเลือกภายใต้เครื่องมือ> ตัวเลือก> การแก้จุดบกพร่อง นี่เป็นสิ่งที่ตรงกันข้ามกับสิ่งที่คุณคิดโดยสังหรณ์ใจ แต่นี่คือสิ่งที่แก้ไขให้ฉัน (เช่นป้องกันข้อความที่น่ารำคาญนั้นและให้ฉันแก้ไขรหัสของฉัน)
สิงห์

1
@leo เป็นวิกิชุมชนเพื่อให้คุณสามารถแก้ไขได้อย่างอิสระ ปุ่ม "แก้ไข" ใช้งานไม่ได้สำหรับคุณหรือไม่? ฉันเห็นว่าคุณมีชื่อเสียงมากพอที่จะทำเช่นนั้น Ps. ฉันเพิ่มการอ้างอิงถึงคำตอบของคุณเพื่อให้มีการกระจายตัวน้อยลง
beppe9000

23

หากคุณกำลังดีบักแอปพลิเคชัน ASP.NET ให้ไปที่คุณสมบัติ> เว็บ> เซิร์ฟเวอร์และตรวจสอบให้แน่ใจว่าได้เลือก "เปิดใช้งานและดำเนินการต่อ" ภายใต้ใช้ Visual Studio Development Server


3
ยังต้องกดหยุดชั่วคราวในขณะที่ดีบักจากนั้นจึงสามารถแก้ไขโค้ดได้
Alexey Obukhov

หากฉันใช้ iis ในเครื่อง "เปิดใช้งานและดำเนินการต่อ" ก็สามารถทำได้
Khoshtarkib

11

ผมมีปัญหาเหมือนกัน. ฉันยังติดตั้ง VS 2008 อีกครั้ง แต่ปัญหาก็ไม่หายไป อย่างไรก็ตามเมื่อฉันลบจุดพักทั้งหมดแล้วมันก็เริ่มทำงาน

Debug->Delete All Breakpoints

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


5

สองสิ่งที่ต้องตรวจสอบ

  • ตรวจสอบว่าคอมไพล์ของคุณตั้งค่าเป็น Debug vs. Release
  • ตรวจสอบให้แน่ใจว่าคุณไม่ได้เปิดตัวกระบวนการโหมดผสม
  • หากบนเครื่อง 64 บิตตรวจสอบให้แน่ใจว่าได้ตั้งค่าเป้าหมาย CPU เป็น x86 แทนที่จะเป็น AnyCPU

แก้ไข

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

หากมีการนำเสนอโครงการใหม่อาจเป็นเรื่องที่ละเอียดอ่อนยิ่งขึ้น ฉันจะลองสิ่งต่อไปนี้

  • สำรอง HKCU: \ Software \ Wow6432Node \ VisualStudio \ 9.0 (อาจจะแค่เปลี่ยนชื่อ)
  • ลบคีย์เดียวกัน
  • ลองทำซ้ำอีกครั้ง

2
กระบวนการโหมดผสมคืออะไร? ฉันยังลองโครงการ winforms ใหม่
nightcoder

ฉันไม่มี HKCU: \ Software \ Wow6432Node \ node
nightcoder

@nightcoder จากนั้นลองใช้ HKCU: \ Software \ Microsoft \ VisualStudio \ 9.0
JaredPar

5

วิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉัน (ทำงานบนเครื่อง 64x)

ในที่สุดฉันก็คลิก'advanced compiler settings'และUNCHECKED 'enable optimizations 'และตอนนี้ฉันสามารถผ่านโค้ดและแก้ไขได้ในขณะที่ดีบัก


2
สิ่งนี้ดูเหมือนจะเป็น Visual Basic เท่านั้น: msdn.microsoft.com/en-us/library/07bysfz2%28v=vs.100%29.aspx
Marcel

ใช้ได้ผลสำหรับฉัน! VS2013, VB.Net, Frame 3.5
MiBol

1
และการตั้งค่าเหล่านี้อยู่ที่ไหน?
vapcguy

5

"แก้ไขและดำเนินการต่อ" เมื่อเปิดใช้งานจะอนุญาตให้คุณแก้ไขโค้ดเมื่ออยู่ในโหมดหยุดพักเท่านั้น: เช่นการหยุดการทำงานชั่วคราวโดยมีข้อยกเว้นหรือโดยการกดจุดพัก

นี่หมายความว่าคุณไม่สามารถแก้ไขโค้ดได้เมื่อการดำเนินการไม่ได้หยุดชั่วคราว! เมื่อพูดถึงโครงการเว็บดีบัก (ASP.NET) สิ่งนี้ไม่ได้ใช้งานง่ายมากนักเนื่องจากคุณมักต้องการเปลี่ยนแปลงระหว่างคำขอ ในขณะนี้โค้ดของคุณ (อาจ) ดีบักไม่ทำงาน แต่ก็ไม่ได้หยุดชั่วคราวเช่นกัน!
ในการแก้ปัญหานี้คุณสามารถคลิก "ทำลายทั้งหมด" (หรือกดCtrl+ Alt+ Break) หรือตั้งค่าจุดพักไว้ที่ใดที่หนึ่ง (เช่นในPage_Loadเหตุการณ์ของคุณ) จากนั้นโหลดหน้าซ้ำเพื่อให้การดำเนินการหยุดชั่วคราวเมื่อถึงจุดพักและตอนนี้คุณสามารถแก้ไขโค้ดได้แล้ว แม้แต่รหัสใน.csไฟล์


4

สำหรับฉันด้วยเหตุผลที่ฉันไม่เข้าใจการตั้งค่า "สร้างข้อมูลการแก้ไขข้อบกพร่อง" ใน "การตั้งค่าคอมไพเลอร์ขั้นสูง" ถูกตั้งค่าเป็น "pdb-only" แทนที่จะเป็น "Full"

โดยค่าเริ่มต้นพารามิเตอร์นี้จะตั้งค่าเป็น "เต็ม" เสมอ แต่นักโพลเทอไกสต์ผู้ลึกลับได้เปลี่ยนพารามิเตอร์นี้เมื่อคืนที่ผ่านมา :)

ปล. ฉันใช้ Visual Basic .Net กับ Visual Studio 2010


4

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

ความนับถือ,

อดัม.


4

ฉันพบว่าแม้ว่าในแท็บ build & debug คุณสมบัติของโปรเจ็กต์จะถูกตั้งค่าเป็น Debug และการตั้งค่าอื่น ๆ ทั้งหมดนั้นถูกต้องฉันยังคงได้รับข้อความอย่างไรก็ตามหลังจากขุดเพิ่มเติมภายใต้เมนู Build ให้เลือก Configurations Manager ... และตรวจสอบให้แน่ใจว่าได้เลือก Debug แล้ว ในสองแห่งที่นั่นเช่นกัน go คิด ... ว่าต้องตั้ง debug กี่ที่ ๆ ?????? แม้ว่าคุณจะตั้งค่า Project - Configuration เป็น Debug แล้วภายใต้ Build - Manager จะไม่มีการเปลี่ยนแปลงดังนั้นคุณจึงเปลี่ยนการตั้งค่าเดียวกันที่นั่นเช่นกัน Project Configuration - ดูเหมือนว่าจะเป็นปัญหาของ Microsoft อีกครั้ง .......


4

ปัญหานี้เกิดจากการตั้งค่า Intellitrace

หากเปิดใช้งาน Intellitrace ตรวจสอบให้แน่ใจว่าได้เลือกเหตุการณ์ Intellitrace เท่านั้น

มิฉะนั้นจะไม่อนุญาตให้แก้ไขและดำเนินการต่อ ..

หากคุณคลิกที่ตัวเลือก Intellitrace คุณจะเห็นคำเตือน


นี่คือปัญหาสำหรับฉัน!
beppe9000

ค้นหาตัวเลือกทั้งหมดใน Visual Studio Tools สำหรับ "Intellitrace" และไม่มีตัวเลือกดังกล่าวใน VS Community 2017 รายละเอียดเพิ่มเติมเล็กน้อยที่นี่ช่วยได้
vapcguy

4

การถ่ายภาพต่อไปนี้ช่วยให้ฉันใช้ VS2010:

ไปที่ Tools, Options, Debugging, General และตรวจสอบให้แน่ใจว่าไม่ได้เลือก "Require source files to match the original version"


3

ซึ่งจะเกิดขึ้นเมื่อดีบักเกอร์ไม่ถึงจุดพักหรือคุณไม่ได้กด Break All (หยุดชั่วคราว) มันไม่ง่ายอย่างนั้นหรอกเหรอ?


มันเกิดขึ้นเมื่อดีบักเกอร์ถึงจุดพักและฉันกำลังพยายามเปลี่ยนแปลงบางอย่างในโค้ด
nightcoder

3

ข้อผิดพลาดระบุว่าสาเหตุที่เป็นไปได้คือ: "โค้ดที่กำลังดีบักได้รับการปรับให้เหมาะสม ณ เวลาสร้างหรือรัน" ไปที่ Project Properties-> Debug และยกเลิกการเลือกช่อง Optimize Code สำหรับโหมด Debug


3

ฉันมีปัญหานี้ใน Microsoft Visual Studio 2008 และวิธีแก้ปัญหานั้นง่ายมาก เมื่อคุณเรียกใช้โครงการของคุณโปรดตั้งค่าในโหมด "แก้ไขข้อบกพร่อง" ไม่ใช่ "ปล่อย" วิธีแก้ปัญหาคนอื่นจะมีประโยชน์


2

ถ้าฉันสร้างโปรเจ็กต์ใหม่การแก้ไขขณะดีบักจะไม่ทำงาน หากฉันสร้างเว็บไซต์ใหม่ให้แก้ไขขณะแก้ไขข้อบกพร่องตามที่คาดไว้


1

ในกรณีของฉันเพียงแค่รีเซ็ตเป็นการตั้งค่าดีบักเกอร์เริ่มต้นและตั้งค่า IntelliTrace-> เหตุการณ์ intellytrace เท่านั้นที่ช่วยได้


1

บางสิ่งที่ดูเหมือนจะช่วยในการใช้ VS2010:

  • ไปที่ Tools, Options, Debugging, General และตรวจสอบให้แน่ใจว่าไม่ได้เลือก "Require source files to match the original version"
  • อินสแตนซ์. vshost.exe หลายรายการสามารถเหลือจากเช่นการถอดดีบักเกอร์ VS ออกจากกระบวนการที่หยุดทำงาน สิ่งนี้จะรบกวนจุดพักและคอมไพล์ด้วย ใช้ตัวจัดการงานแท็บกระบวนการเพื่อฆ่าอินสแตนซ์ทั้งหมดของ. vshost.exe โดยคลิกขวาที่แต่ละอินสแตนซ์และเลือก End Process Tree VS จะสร้างอินสแตนซ์ใหม่

1

ฉันลบชุดข้อมูลออกจากโปรเจ็กต์ของฉันเพราะฉันไม่ได้ใช้งาน หลังจากนั้นฉันสามารถแก้ไขโปรแกรมได้เมื่อทำการดีบัก


1

ฉันทำการเปลี่ยนแปลงทั้งหมดที่กล่าวถึงในคำตอบอื่น ๆ ทั้งหมดและไม่มีอะไรได้ผล ฉันได้เรียนรู้อะไร เปิดใช้งานและดำเนินการต่อมีอยู่ทั้งในเมนูเครื่องมือ> ตัวเลือก> การดีบักและในการตั้งค่าโครงการ หลังจากฉันตรวจสอบทั้งสองอย่างแล้วเปิดใช้งานและดำเนินการต่อก็ใช้ได้ผลสำหรับฉัน


3
การตั้งค่าโครงการอะไร คุณคลุมเครือเกินไป
Adaptabi

@Adaptabi หมายความว่าถ้าคุณคลิกขวาที่ชื่อโปรเจ็กต์ของคุณคลิกคุณสมบัติจากนั้น (ถ้าเป็นโปรเจ็กต์เว็บ) คลิกเว็บจะมีช่องทำเครื่องหมายเพื่อให้แน่ใจว่าได้เลือก "เปิดใช้งานแก้ไขและดำเนินการต่อ" ที่นั่น
vapcguy

1

ฉันพบสิ่งนี้ในวันนี้ - ปรากฎว่าการตั้งค่าข้อมูล Debug เป็น pdb เท่านั้น (หรือไม่มีเลยฉันคิดว่า) จะป้องกันไม่ให้ Edit and Continue ทำงาน

ตรวจสอบว่าข้อมูลการแก้ไขข้อบกพร่องของคุณตั้งค่าเป็น "เต็ม" ก่อน

คุณสมบัติโครงการ> สร้าง> ขั้นสูง> ผลลัพธ์> ข้อมูลการดีบัก


1

ดูเหมือนจะไม่ถูกต้อง แต่วิธีเดียวคือปิดการใช้งานการแก้ไขและดำเนินการต่อจากตัวเลือก VS 2017 ... จากนั้นแก้ไข AspNet และเริ่มทำงานต่อ ...


เป๊ะ! มันใช้งานง่าย แต่สิ่งที่ได้ผลสำหรับฉันเช่นกันคือการไม่สามารถ "แก้ไขและดำเนินการต่อ" ได้ จะไม่ "hot swap" การเปลี่ยนแปลงที่คุณทำ แต่อย่างน้อยคุณก็สามารถแก้ไขโค้ดของคุณได้จากนั้นจะมีผลเมื่อรีสตาร์ทแอปของคุณ
สิงห์

1

สิ่งที่ใช้ได้ผลสำหรับฉันคือยกเลิกการเลือก "ใช้โหมดความเข้ากันได้ที่มีการจัดการ" ภายใต้

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

TBN: การตรวจสอบหรือยกเลิกการเลือก "ต้องการซอร์สไฟล์ให้ตรงกับเวอร์ชันดั้งเดิมทุกประการ" ดูเหมือนจะไม่ส่งผลต่อ E&C

หวังว่านี่จะช่วยได้


1

เปิดใช้งานแก้ไขและดำเนินการต่อเฉพาะงานรัน IIS Express อย่าทำงานใน ISS ท้องถิ่นหรือโฮสต์ภายนอก


1

ฉันมีปัญหาที่น่ารำคาญนี้ตั้งแต่ฉันอัปเกรด VS 2019 เป็น 16.4.3 และทำให้ฉันปวดหัวมาก
ในที่สุดผมก็แก้ปัญหาด้วยวิธีนี้:

1 หยุดการแก้จุดบกพร่อง
2. เลือกวิธีการแก้ปัญหาจาก "Explorer โซลูชันที่"
3. ในคุณสมบัติของการเปลี่ยนแปลงหน้าต่าง"ใช้งานการตั้งค่า"ทรัพย์สินจาก"ปล่อย | CPU ใด ๆ"เพื่อ"แก้ปัญหา | CPU ใด ๆ"
4 ในการแก้ไขข้อบกพร่อง> ตัวเลือก> ทั่วไปให้เลือกช่องทำเครื่องหมายแก้ไขและดำเนินการต่อ

ที่ได้ผลสำหรับฉันและหวังว่าจะได้ผลสำหรับคุณเช่นกัน



0

ฉันมีสิ่งนี้เกิดขึ้นในไฟล์คลาสที่เชื่อมโยง ส่วนที่เหลือของโครงการอนุญาตให้ E&C แต่ฉันพบข้อผิดพลาดเดียวกันในการแก้ไขไฟล์ที่เชื่อมโยง วิธีแก้ไขคือการแยกไฟล์ที่เชื่อมโยงเป็นโครงการของตัวเองและอ้างอิงโครงการ


0

ฉันประสบปัญหาเดียวกัน ปัญหาของฉันคือฉันสามารถแก้ไขไฟล์ได้ แต่แก้ไขไม่ได้ (ทั้งสองไฟล์อยู่ในโปรเจ็กต์เดียวกัน) ต่อมาฉันพบว่าไฟล์ที่ฉันแก้ไขไม่ได้เป็นส่วนหนึ่งของโปรเจ็กต์อื่นด้วย ไม่ได้โหลดโปรเจ็กต์อื่น (การทดสอบหน่วย) และอัจฉริยะดีบักเกอร์ VSแสดงข้อผิดพลาดว่าแอสเซมบลีสำหรับไฟล์ที่ระบุนี้ไม่ได้โหลดและไม่อนุญาตให้ทำการเปลี่ยนแปลง แปลกดี!

ดังนั้นฉันต้องยกเลิกการโหลดโครงการทดสอบหน่วยและดำเนินการดีบัก EnC ต่อไป


0

ฉันมีโครงการฐานข้อมูลในโซลูชันซึ่งหยุดไม่ให้แก้ไขโครงการเว็บฟอร์ม

ฉันคลิก "ยกเลิกการโหลด" ในโปรเจ็กต์ฐานข้อมูลและตอนนี้ทุกอย่างทำงานได้ดี


0

สำหรับ VS2017 มันสามารถช่วยในการลบไฟล์. suo ในโซลูชันของคุณมันใช้งานได้สำหรับฉัน :)

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