VS 2015 Update 1 - อ้างว่าฉันกำลังแก้จุดบกพร่องของรุ่น


98

หลังจากอัปเดตเป็น VS 2015 อัปเดต 1 หากฉันเรียกใช้โครงการเว็บ (MVC) ให้หยุดแอปพลิเคชันจากนั้นลองเรียกใช้อีกครั้ง VS จะหยุดและปรากฏกล่องโต้ตอบที่อ้างสิทธิ์

<myproject.dll>คุณกำลังแก้ไขข้อบกพร่องการสร้างข่าวของ

การใช้ Just My Code กับรีลีสบิลด์โดยใช้การเพิ่มประสิทธิภาพคอมไพเลอร์ส่งผลให้ประสบการณ์การดีบักลดลง (เช่นเบรกพอยต์จะไม่ถูกโจมตี)

ปัญหาคือฉันไม่ได้ใช้งานรุ่นรุ่น เห็นได้ชัดว่าฉันใช้งานบิวด์ดีบัก (เดียวกัน) ที่ฉันเพิ่งวิ่ง ทำไม VS ถึงคิดว่าฉันกำลังใช้งานรุ่นรุ่น?

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


1
ชอบที่จะได้ยินหากคุณแก้ไขปัญหานี้ ฉันพบปัญหาเดียวกันแน่นอนหลังจากติดตั้งอัปเดต 1 การทำความสะอาด / การรันใหม่ชั่วคราวทำให้ฉันผ่านพ้นไปได้ แต่แล้วมันก็เกิดขึ้นอีกครั้งในครั้งต่อไป
Jerad Rose

1
น่าเสียดายที่ฉันไม่ได้ ฉันกำลังติดต่อกับฝ่ายสนับสนุนของ Microsoft ซึ่งกำลังตรวจสอบปัญหาอยู่
John T

2
สิ่งที่คุ้มค่าฝ่ายสนับสนุนของ Microsoft ได้สร้างปัญหาซ้ำและกำลังตรวจสอบ ทันทีที่ฉันได้ยินฉันจะรายงานกลับ / คำตอบ
John T

@JohnT โชคดีหรือยัง
นิค

@ นิกจริงเปล่าครับ. ฉันจะส่งคำสั่งติดต่อกลับเพื่อดูว่ามีการอัปเดตหรือไม่
John T

คำตอบ:


58

คำพูดจาก Microsoft คือปัญหานี้เป็นปัญหาที่ทราบแล้ว (เดิมไปที่ทีม Debugger แต่ถูกพิจารณาว่าเป็นปัญหาในการสร้างและตอนนี้อยู่ในมือของทีมระบบ Project แล้วมีข้อบกพร่องอื่น ๆ ที่เปิดอยู่ในปัญหานี้และเป็น ได้รับการจัดอันดับ Priority 1 ดังนั้นควรติดตามการอัปเดตครั้งต่อไปแม้ว่าจะเป็นไปตามที่คาดไว้ แต่ก็ไม่มีสัญญาใด ๆ ว่าจะเผยแพร่เมื่อใด (หรือสิ่งที่อยู่ในการอัปเดตจริง)

ดังนั้น. เป็นที่รู้จักและกำลังดำเนินการอยู่ อย่างน้อยการปิด“ เปิดใช้งานเพียงรหัสของฉัน” ในตัวเลือกทั่วไปของการดีบักดูเหมือนจะเป็นวิธีแก้ปัญหาในตอนนี้


13
ยังคงได้รับสิ่งนี้ใน VS2017 แต่สำหรับ DLL เดียว มีอะไรอัพเดตไหม?
JMK

1
มี URL เช่นที่ UserVoice ที่ติดตามปัญหานี้หรือไม่
UuDdLrLrSs

ใช้วิธีการเดียวกันสำหรับ VS 2017 แปลกที่ยังไม่ได้รับการแก้ไขอย่างถูกต้อง อย่างไรก็ตามขอบคุณสำหรับการแก้ไข
Naveen Kumar V

6
ยังคงได้รับสิ่งนี้ใน VS2019
philu

47

ดังที่ได้กล่าวไว้โดย @romanoza Microsoft ได้อัปเดตรายงานข้อบกพร่องของ Microsoft Connect (ตอนนี้หายไป) (ก่อนหน้านี้อยู่ที่นี่ในกรณีที่คุณสามารถค้นหาที่เก็บถาวรได้จากที่ใดที่หนึ่ง) โดยมีข้อมูลต่อไปนี้

ยกเลิกการเลือกการตั้งค่า Debug -> Options -> Suppress JIT optimization เมื่อโหลดโมดูล (จัดการเท่านั้น)

นี่คือวิธีแก้ปัญหา พวกเขากล่าวต่อไป:

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

สุดท้ายนี้รับทราบ:

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

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


40
ในสถานการณ์ของฉันฉันต้องทำตรงกันข้าม ฉันต้องทำเครื่องหมายในช่องทำเครื่องหมายสำหรับการตั้งค่าที่กล่าวถึงข้างต้น ทั้งหมดนี้แปลกมาก
dyslexicanaboko

2
เหมือนกับ dyslexicanaboko - ฉันทำเครื่องหมายในช่องเพื่อลบข้อความ
Jay Cummins

5
ปัญหาเดียวกันใน Visual Studio 2017 April Release ต้องติ๊กช่องทำเครื่องหมาย
Rafael

1
ฉันโหวตไม่ได้เพราะคำตอบใช้งานได้ แต่เป็นเพราะความคิดเห็นแรกในคำตอบคือสิ่งที่ได้ผล! และนั่นสมควรได้รับความโดดเด่น (โปรดทราบว่าลิงก์ภายนอกหมดแล้วระบบจะนำคุณไปยังหน้า "Microsoft Connect เลิกใช้งานแล้ว")
ไม่แยแส

ขอบคุณสำหรับความคิดเห็น Craig ฉันได้ทำการแก้ไขเล็กน้อยตามความคิดเห็นของคุณ หวังว่าจะช่วยให้ผู้อื่นก้าวไปข้างหน้า!
Nate Cook

25

ฉันสังเกตว่าคำตอบที่นี่ไม่สมบูรณ์ฉันมีปัญหาเดียวกันและได้รับการแก้ไขโดยการเปิดคุณสมบัติโครงการและภายใต้แท็บสร้างและยกเลิกการเลือกการกำหนดค่าการดีบัก "รหัสเพิ่มประสิทธิภาพ" คุณควรตรวจสอบตัวจัดการการกำหนดค่าตามที่กล่าวไว้ข้างต้นเพื่อให้แน่ใจว่าเป็นเสียง คำตอบมาจากโพสต์นี้และพวกเขาควรได้รับเครดิต: VS2015 Project ไม่ทำงานในโหมดดีบักอีกต่อไป

ขอบคุณ


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

1
คุณช่วยชีวิตฉัน. คุณเป็นพระเจ้า
SamyCode

12

ฉันแก้ไขปัญหาในการตั้งค่าการกำหนดค่าเป็นDebugในหน้าต่างConfiguration Mangerตามที่แนะนำในคำตอบนี้

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


นั่นไม่ใช่ค่าเริ่มต้น (ใครบางคนต้องยุ่งกับการกำหนดค่าของคุณอย่างจริงจังเพื่อให้สิ่งนั้นเกิดขึ้น!) และพวกเราส่วนใหญ่ได้ตรวจสอบแล้ว (เป็นสิ่งแรกที่ฉันตรวจสอบอยู่แล้ว) - ตามที่ OP ได้บอกว่าเขากำลังสร้างในโหมดดีบักอย่างแน่นอนและฉันรู้ว่าฉันกำลังสร้างการดีบักจริงด้วยเช่นกัน - สร้างขึ้นในโหมดดีบักโดยปิดใช้งานการปรับให้เหมาะสมดีบัก ประกาศแล้วจะมีการสร้าง pdb ที่ถูกต้องเป็นต้น
BrainSlugs83

1
ดีที่คุณใส่ไว้ที่นี่ Fabricio ฉันพนันได้เลยว่ามีหลายคนที่พลาดสิ่งนั้นเช่นกัน
Molibar

11

การทำความสะอาด (และการสร้างใหม่) วิธีนี้ใช้ได้ผลสำหรับฉันเป็นวิธีแก้ปัญหาชั่วคราว นอกจากนี้คุณสามารถเลือก Debug> Options และยกเลิกการSuppress JIT optimizationเลือกช่องทำเครื่องหมาย


VS 2017 เวอร์ชัน 15.1 ทำให้ฉันได้รับข้อผิดพลาดปลอม ("การดีบักรุ่นรุ่น") ทำความสะอาดและสร้างใหม่ทำให้มันหายไป
DeveloperDan

Visual Studio 2015 Update 3 ฉันได้รับข้อผิดพลาดนี้เมื่อยกเลิกการเลือก Suppress JIT การเลือกมันช่วยแก้ปัญหาได้
Saravanan Sachi

6

ฉันมีปัญหาเดียวกันตั้งแต่อัปเดตเป็น VS2015 Update 1

พบรายงานที่คล้ายกันในฟอรัม Visual Studio ของ Microsoft ซึ่งชี้ไปที่รายงานข้อบกพร่องที่ได้รับการยกขึ้นพร้อมกับพวกเขา นี่

มีวิธีแก้ปัญหาหลายวิธี แต่ฉันคิดว่าปัญหาพื้นฐานคือ IIS Express ไม่ได้ปิดตัวลงเมื่อการดีบักสิ้นสุดลง - และไม่ใช่เพราะตัวเลือกการแก้ไขและดำเนินการต่อไม่ถูกเลือก วิธีแก้ปัญหาที่เร็วที่สุดที่ฉันสามารถพบได้จนกว่าข้อบกพร่องจะได้รับการแก้ไข:

  • คลิกขวาที่ไอคอน IIS Express ในถาดและออกหลังจากการดีบัก (ให้เครดิตกับ David Totzke ที่ให้วิธีแก้ปัญหาเกี่ยวกับรายงานข้อผิดพลาด)

ไม่ดี แต่ฉันไม่คิดว่าจะมีวิธีแก้ปัญหาที่เหมาะสมในขณะนี้


2
วิธีแก้ปัญหาปัจจุบันที่ฉันใช้คือ Cleaning Solution ตามด้วย Start Debugging
Jerad Rose

1
บังเอิญบางครั้งฉันต้องฆ่า iisexpress จริงๆ ออกจากเมนูตามบริบทไม่ได้ทำให้มันตาย
Mark Sowul

3

ฉันพบปัญหาเดียวกัน ฉันแก้ไขปัญหาโดยการลบไฟล์ทั้งหมดจากโฟลเดอร์ 'bin' ด้วยตนเองจากนั้นสร้างโซลูชันใหม่ ฉันไม่ได้รับกล่องโต้ตอบนี้อีกต่อไป


2
ลองแล้วไม่ได้ช่วยอะไร พบปัญหาเดียวกันในโครงการใหม่
John T

ฉันกำลังจะโพสต์คำตอบนี้เช่นกัน :) นี่เป็นเคล็ดลับสำหรับฉัน (VS2015 Update 3)
Caio Campos

3

ในกรณีของฉันฉันได้เปลี่ยน "แพลตฟอร์มโซลูชันที่ใช้งานอยู่" สำหรับโซลูชันทั้งหมดที่ "Configuration Manager" จาก x86 เป็น CPU ใดก็ได้แก้ไขปัญหาแล้ว


ทำงานให้ฉันด้วย
Rahatur

1

ตรวจสอบคุณสมบัติการกำหนดค่าโซลูชันของคุณ ฉันพบปัญหาเดียวกันและพบว่าการกำหนดค่าการดีบักของฉันกำลังสร้างโครงการบางอย่างที่มีการกำหนดค่ารุ่น


4
ขออภัยไม่เนื่องจากฉันบอกว่าไม่มีการตั้งค่าเป็น Release - การกำหนดค่าทั้งหมดเป็น Debug การรันหลังจากทำความสะอาดไม่แสดงข้อผิดพลาด การหยุดและรันใหม่ทันทีแสดงข้อผิดพลาด - ไม่มีอะไรเปลี่ยนแปลงในระหว่างนั้นรวมถึงโครงการที่ไม่ได้สร้างใหม่
John T

1

ฉันสังเกตเห็นว่า Visual Studio ไม่ได้ฆ่ากระบวนการ iisexpress หลังจากที่ฉันหยุดดีบักเกอร์ การฆ่ากระบวนการด้วยตนเองดูเหมือนจะแก้ไขได้สำหรับฉัน

ดูเหมือนว่าจะได้รับการแก้ไขแล้วในอัปเดต 2


1

ดูเหมือนจะมีวิธีแก้ปัญหามากพอ ๆ กับที่มีคนประสบปัญหา แต่ในกรณีของฉันฉันต้องลบและเพิ่มการอ้างอิงโครงการใหม่ การอ้างอิงโครงการอยู่ในโครงการทดสอบหน่วยในโซลูชันเดียวกัน


1

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

ชั้นประถมฉันรู้และฉันรู้ตัวว่าตัวเองดูเหมือนคนงี่เง่า แต่บางครั้งปัญหาก็คือสิ่งที่รายงาน


0

ตรวจสอบว่า URL ของโครงการ IIS ชี้จุดที่คุณคิดว่าเป็นจริง หากมีข้อสงสัยให้คลิกปุ่ม "สร้างไดเรกทอรีเสมือน"

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


0

สำหรับฉันฉันพบ 3 \ Release \ folder refs ในไฟล์ FileListAbsolute.txt นี้:

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.csproj.FileListAbsolute.txt

พวกเขาเป็นเช่นนี้:

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.csprojResolveAssemblyReference.cache

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.dll

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.pdb

และเพียงแค่ลบ 3 บรรทัดเหล่านั้นนอก VS จากนั้นเปิดโซลูชันอีกครั้งเพื่อแก้ปัญหา หวังว่าจะช่วยได้


0

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



0

นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน

หากเป็นโครงการเว็บให้ไปที่คุณสมบัติโครงการของโครงการเว็บและ

  1. หากเลือก Local IIS ให้รีสตาร์ทเซิร์ฟเวอร์ IIS ของคุณ
  2. หากเลือก IIS Express ให้ออกจาก IIS Express จากไอคอนถาดงาน

ดูเหมือนว่า dll บางตัวจะถูกแคชดังนั้นขั้นตอนข้างต้นจะทำให้แคชไม่ถูกต้อง



-1

ค่อนข้างแน่ใจว่าสิ่งนี้ได้รับการแก้ไขแล้วใน Visual Studio 2015 Update 2

ฉันเคยเห็นสิ่งนี้ตลอดเวลา (หลายครั้งต่อวัน) และไม่เคยเห็นเลยสักครั้งตั้งแต่อัปเดตเป็นอัปเดต 2


4
ไม่ได้แน่นอน ฉันเข้าใจทันทีใน VS 2015 อัปเดต 3
jpmc26

1
ฉันไม่ได้บอกว่าพวกเขาไม่ได้ทำลายมันอีกครั้งในอัปเดต 3;)
เจอราดโรส

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