Visual Studio 2013 IntelliSense หยุดทำงานสำหรับตัวควบคุม ASP.NET MVC5


132

ฉันกำลังประสบปัญหาแปลก ๆ ในโครงการ Visual Studio 2013 ASP.NET MVC 5 ของฉัน ทันใดนั้น IntelliSense ในคลาสคอนโทรลเลอร์ของโปรเจ็กต์ MVC 5 ไม่ทำงานเลย

ฉันมีโปรเจ็กต์ไลบรารีคลาสอื่นในโซลูชันของฉันและ IntelliSense กำลังทำงานในไฟล์โปรเจ็กต์ไลบรารีคลาสเหล่านั้น แต่ปัญหาอยู่ในโปรเจ็กต์ MVC เท่านั้น โดยปกติแล้วปัญหาประเภทนี้จะแก้ไขได้โดยการรีสตาร์ท Visual Studio: ไม่เพียง แต่ฉันรีสตาร์ท Visual Studio แต่ฉันยังรีสตาร์ทคอมพิวเตอร์ด้วยและปัญหา IntelliSense ไม่ได้รับการแก้ไขเลย

มีขั้นตอนอื่นใดบ้างที่ทำให้ฉันใช้ IntelliSense กลับคืนมาได้

คำตอบ:


209

ปิด Visual Studio ลบไฟล์ <ProjectName> .v12.suo เปิดโซลูชันอีกครั้ง


ขอบคุณสำหรับข้อมูล. ฉันจะลองใช้เคล็ดลับนี้ในครั้งต่อไปหาก Intellisense Visual Studio ของฉันหยุดทำงานอีกครั้ง
Emran Hussain

15
ฉันพบว่าการลบไฟล์ suo ช่วยแก้ปัญหาได้มากมาย มันเหมือนกับ Visual Studio เทียบเท่ากับการรีบูต ขอบคุณที่เตือนฉัน.
grahamesd

1
ใช่ ... แก้ไขปัญหาให้ฉันในขณะนี้ ของฉันProjectName.v12.suoมีขนาด 982 KB ลบแล้ว ปิดโซลูชัน เปิดวิธีการแก้ปัญหาและใหม่ProjectName.v12.suoGot สร้าง Intellisense กลับมาอีกครั้ง แต่ตอนนี้.suoไฟล์ใหม่นี้มีขนาดเพียง 500 KB น่าสนใจจริงๆ. บางที Microsoft ควรแก้ไขพฤติกรรมที่ไม่ดีนี้หรือไม่? อย่างไรก็ตามมันทำให้ VS สูญเสีย Intellisense และมันเป็นความเจ็บปวดจริงๆที่ต้องทำงานโดยไม่ใช้มัน :)
Leniel Maccaferri

3
ไม่ได้ผลสำหรับฉัน สิ่งที่ใช้ได้ผลสำหรับฉันคือการรีเซ็ตการตั้งค่า
DougCouto

วิธีนี้ช่วยแก้ไขปัญหา IntelliSense แต่คุณยังทำให้เบรกพอยต์บุ๊กมาร์กและอื่น ๆ ทั้งหมดหลุดหายไปในเวลาเดียวกัน
Andreas

68

การรีเซ็ตการตั้งค่าของฉันหรือการนำเข้าที่ส่งออกก่อนหน้านี้การตั้งค่าการทำงานและการรีสตาร์ท Visual Studio Tools > Import and Export Settings... > Reset all settingsทำได้:

แก้ไข: สิ่งนี้เกิดขึ้นกับฉันบ่อยครั้งที่น่าแปลกใจใน VS Express และบางครั้งใน VS Professional สิ่งหนึ่งที่ฉันสังเกตเห็นใน Pro ก็คือมันเกิดขึ้นหลังจากการปิดเครื่องโดยไม่คาดคิด (เมื่อ IT บังคับให้รีบูตกลางดึก) ดังนั้นอาจเกี่ยวข้องกับ Visual Studio ปิดไม่ถูกต้อง เทคนิคที่อธิบายไว้ข้างต้นได้ผลทุกครั้ง


1
ขอบคุณวันนี้ฉันมีปัญหา Intellisense อีกครั้งและโซลูชันของคุณแก้ปัญหาได้
Emran Hussain

1
ขอบคุณสิ่งนี้ได้ผลสำหรับฉันเช่นกัน หากคุณอ่านจนถึงด้านล่างให้ลองทำก่อนที่คุณจะลบส่วนขยายทั้งหมด
สตีฟอีกคนใน

: DI ลบส่วนขยายทั้งหมดของฉันออกก่อนจริงๆ อย่างไรก็ตามมันได้ผล!
Luis Lavieri

สิ่งนี้ช่วยแก้ปัญหาของฉันได้เช่นกัน
contractwolf

นี่เป็นตัวเลือกที่ดีที่สุด ยอดเยี่ยม.
Nelson Miranda

35

เครื่องมือ> ตัวเลือก> แก้ไขข้อความ> C #> ทั่วไป

ตรวจสอบว่าได้เลือก "Auto List Members" แล้ว


สิ่งนี้ได้ผลสำหรับฉัน การลบไฟล์. suo ได้ผลหลายครั้งก่อนหน้านี้ แต่ไม่สามารถทำได้ในครั้งนี้
Craig

สิ่งนี้ได้ผลสำหรับฉัน Visual Studio 2013 มันเปลี่ยนเราไปใช้โดเมนใหม่และสูญเสียการตั้งค่า VS ทั้งหมด
boilers222

26

ฉันได้พบวิธีหนึ่งในการแก้ปัญหา นั่นคือ 1. -> ลบโครงการ ASP.NET MVC ออกจากโซลูชัน 2. -> จากนั้นเพิ่มโครงการ MVC กลับไปที่โซลูชัน

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

แก้ไข:

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


1
จัดการกับเรื่องนี้มาหนึ่งเดือนแล้วและมันทำให้ฉันแทบคลั่ง การถอดและอ่านวิธีแก้ปัญหา (แม้ว่าจะมีอาการปวด) ก็ใช้ได้ผลเช่นกัน ขอบคุณ!
NorthFork

6
ในกรณีของฉันมันเป็นส่วนขยาย Xamarin แต่ฉันไม่อยากพูดถึง Xamarin ในทางที่ไม่ดีเพราะการสนับสนุนลูกค้าของพวกเขานั้นยอดเยี่ยมมาก ทันทีที่ฉันรายงานปัญหาพวกเขาได้จัดเตรียมเวอร์ชันที่แก้ไขแล้วให้ฉันอย่างรวดเร็ว นอกจากนี้ส่วนขยาย Xamarin เวอร์ชันล่าสุดดูเหมือนจะไม่มีปัญหาอีกต่อไป ประเด็นของฉันคือเวอร์ชันเฉพาะของส่วนขยายใด ๆ อาจทำให้เกิดปัญหาดังกล่าวเราอาจต้องถอนการติดตั้งส่วนขยายทีละรายการเพื่อค้นหาว่าส่วนขยายใดเป็นสาเหตุของปัญหา ตัวอย่างเช่นเวอร์ชันอนาคตของส่วนขยายที่ดีในปัจจุบันอาจทำให้เกิดปัญหาดังกล่าวได้เช่นกัน เราต้องระวังในกรณีนั้น
Emran Hussain

2
การยกเลิกการโหลดโครงการและการโหลดซ้ำได้ผลสำหรับฉันเช่นกันขอบคุณ!
Rob

1
ในกรณีของฉันมันคือส่วนขยาย Xamarin ถอนการติดตั้งแล้วปัญหาก็หายไป นี่เป็นเวอร์ชั่นล่าสุดด้วย!
Guy Lowe

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

8

คุณสามารถยกเลิกการโหลดโปรเจ็กต์และโหลดโปรเจ็กต์ MVC ใหม่จากโซลูชันได้

  1. คลิกขวาที่โครงการ MVC ในตัวสำรวจโซลูชัน -> "ยกเลิกการโหลดโครงการ"
  2. คลิกขวาที่โครงการ MVC ในตัวสำรวจโซลูชัน -> "โหลดโครงการใหม่"

หลังจากนี้ Intellesense จะทำงานซ้ำอย่างรวดเร็ว


สิ่งที่ฉันเขียนในวันที่ 10 เมษายนดีมาก! stackoverflow.com/a/29556005/1879699
Andreas

6
  • เครื่องมือ -> ตัวเลือก
  • แก้ไขข้อความ -> C # -> Intellisense
  • ตรวจสอบว่าได้เลือก "แสดงรายการเสร็จสิ้นหลังจากพิมพ์อักขระ" แล้ว

VS2013 รหัส intellisense เสร็จสมบูรณ์


1
สิ่งนี้ได้ผลสำหรับฉัน ฉันไม่แน่ใจว่าการติดตั้งเริ่มต้นที่จะยกเลิกการเลือก แต่สิ่งต่อไปนี้ไม่ได้ถูกเลือกไว้สำหรับฉันและนี่เป็นการติดตั้งใหม่ "รายชื่อสมาชิกอัตโนมัติ" "ข้อมูลพารามิเตอร์" ฉันไม่ได้รับ intellisense เกี่ยวกับพารามิเตอร์วิธีการเช่นกัน ปลั๊กอินเดียวที่ฉันมีคือ GhostDoc
gcoleman0828

@ gcoleman0828 ขอบคุณ! นี่เป็นคำตอบที่ถูกต้องสำหรับฉันกับ VS2013
Rod Hartzell

5

ฉันไม่แน่ใจว่าทำไมมันถึงเกิดขึ้น แต่เมื่อมันเกิดขึ้นกับฉันฉันสามารถกู้คืน Intellisense ได้โดยเพียงแค่รีสตาร์ท Visual Studio

คุณพูดถูกมันน่ารำคาญจริงๆ


4

บางครั้งการรีเซ็ตการตั้งค่า VS สามารถช่วยได้:

เครื่องมือ -> ตัวช่วยสร้างการนำเข้าและส่งออกการตั้งค่า -> รีเซ็ตการตั้งค่าทั้งหมด -> ช่องทำเครื่องหมาย "ไม่เพียงรีเซ็ตการตั้งค่าเขียนทับการตั้งค่าปัจจุบันของฉัน" -> ถัดไป> ถัดไป> ถัดไป

ฉันทำให้พวกเขายุ่งกับ RESHARPER และสิ่งนี้ช่วยได้


2
มันเป็นแบบนั้นสำหรับฉันขอโทษ ฉันทำให้พวกเขายุ่งกับการตั้งค่าของ RESHARPER
d.popov

2
โหวตแล้ว Resharper สร้างความเสียหายให้กับการตั้งค่าของฉันในอดีต
Zac

สิ่งนี้ยอมรับได้สำหรับผู้ที่ไม่ได้ปรับแต่งอะไรเลย
t3chb0t

3

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


1
นี่เป็นวิธีที่ง่ายที่สุด TY
Caesar

1

ฉันพบว่าถ้าการสร้างล้มเหลว Intellisense ก็ดูเหมือนจะพัง หลังจากแก้ไขข้อผิดพลาดบิลด์ของฉันและสร้างโปรเจ็กต์ใหม่ Intellisense จะทำงานหลังจากโหลดไฟล์ Razor ใหม่


1

ในกรณีของฉันการรีสตาร์ทไม่ทำงาน

ฉันจึงทำตามขั้นตอนแปลก ๆ ดังต่อไปนี้:

  1. ปิดโซลูชัน
  2. เปิดโซลูชันอื่น
  3. ตรวจสอบแล้วว่า Intellisense ทำงานในโซลูชันอื่นนี้
  4. ปิดโซลูชันอื่น
  5. ในที่สุดให้เปิดโซลูชันแรกอีกครั้ง

และ Intellisense ก็ทำงานอีกครั้ง


วิธีนี้ใช้ไม่ได้ผล แต่เป็นขั้นตอนการแก้ปัญหาที่ดีเพื่อดูว่าเป็นโครงการหรือสตูดิโอภาพที่เป็นสาเหตุของปัญหาหรือไม่
redwards510

1

โดยปกติจะเกิดขึ้นเมื่อบัฟเฟอร์มีข้อผิดพลาด เวลาส่วนใหญ่ข้อผิดพลาดแคชในเครื่องจะถูกล้างเมื่อคุณปิด a, windows form และเปิดใหม่ดังนั้นจึงโหลดซ้ำลงในหน่วยความจำ วิธีแก้ปัญหาหลายวิธีข้างต้นใช้ได้ผล แต่บางครั้งก็ทำได้ง่ายเพียงแค่ปิดรายการและตัวออกแบบและเปิดรายการอีกครั้ง

นอกจากนี้คุณสามารถลองบังคับให้รีเซ็ตโดย

Ctrl + K, Ctrl + ฉันแสดงข้อมูลด่วน Ctrl + Shift + Space แสดงข้อมูลพารามิเตอร์


1

ฉันลองหลายสิ่งหลายอย่างที่ไม่ได้ผล ในที่สุดฉันก็ตัดโค้ดไปที่คลิปบอร์ดสร้างคอนโทรลเลอร์ขึ้นมาใหม่แล้ววางโค้ดแก้ปัญหา!


1

ฉันก็มีปัญหาเดียวกันกับ Intellisense ในโปรแกรมแก้ไขข้อความของฉัน

ฉันแค่closeไฟล์ example.cs ซึ่งไม่ได้ให้ Intellisense และเปิดคลาสVisual Studioนั้นใหม่โดยไม่ต้องรีสตาร์ทมันใช้ได้กับฉัน

หมายเหตุ: ฉันไม่มีปัญหาเดียวกันกับไฟล์. CS ทั้งหมดใน Solution Explorer


1

ฉันใช้ VS 2013 และฉันมีปัญหาเดียวกัน โซลูชันของฉันอัปเดต VS เป็นเวอร์ชันล่าสุด ฉันอัปเดตกรณีของฉัน 4. การอ้างอิงในโครงการต้องตรงกับแอสเซมบลีใน GAC บนคอมพิวเตอร์ (OS) Intellisense มาจาก VS ไม่ใช่จากโครงการ

ฉันหวังว่าจะเป็นประโยชน์สำหรับบางคน


1

... ยังมีอีกคำตอบ - แต่นี่เป็นสาเหตุของความเจ็บปวดของฉัน: ฉันติดตั้งDeveloper Assistantซึ่งทำงานได้ดี แต่หยุดให้คำแนะนำทันที เพื่อให้มันใช้งานได้อีกครั้ง:

ตัวเลือก -> ผู้ช่วยนักพัฒนา -> Intellisense -> เริ่มต้น Visual Studio Intellisense

ฉันใช้เวลา 5 ชั่วโมงเพื่อพบว่า :(

HTH.


1
Tools->Options->Text Editor->C# (or All Languages)->General

เลือกช่องทำเครื่องหมายสำหรับenable Auto List MembersและParameter Informationในบานหน้าต่างด้านขวามือ

หากไม่ได้เลือกไว้ให้เลือก



0

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


0

ฉันใช้ VS 2013 กับ MVC 5 วิธีแก้ปัญหาสำหรับฉันคือเพิ่มสิ่งต่อไปนี้ใน Web.config:

<compilation debug="true" targetFramework="4.5.1">
  <assemblies>
    <add assembly="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

0

วิธีแก้ปัญหาของ Rushonerok เหมาะกับฉันมาก
สำหรับใครที่ไม่รู้: <ProjectName> .v12.suo คือไฟล์ที่ซ่อนอยู่ในโฟลเดอร์รูทของโปรเจ็กต์ คุณต้องตั้งค่าเป็น "แสดงไฟล์ที่ซ่อน" ในเบราว์เซอร์ไฟล์เพื่อดู


0

จนถึงตอนนี้วิธีแก้ปัญหาบางอย่างยังไม่ได้ผลสำหรับฉัน

ฉันมีวิธีแก้ปัญหาต่อไปนี้

Modelเพียงแค่ประกาศประเภทที่คุณต้องการที่จะใช้อย่างชัดเจนในตัวแปรใหม่และใช้แทน

@model MyModel
MyModel mymodel = Model;

@mymodel.MyIntelisenseIsWorkingAgain

0

ในการแก้ปัญหานี้ฉันปิด Visual Studio Express 2013 และฉันเปิดโซลูชันอีกครั้ง แต่ดับเบิลคลิกที่.slnไฟล์โดยตรงจากระบบไฟล์ การเปิดจากหน้าเริ่มต้นทำให้ตัวควบคุมของฉันใช้งานไม่ได้



0

บางครั้งคุณปิดมันโดยไม่ได้ตั้งใจ ลองเปิดเครื่องctrl+spacewindows หรือcmd+spacemac


0

ฉันรู้ว่าฉันช้าไปหน่อย แต่การเพิ่มสิ่งนี้ลงในApp.configไฟล์ของฉันก็เป็นเคล็ดลับ!

<system.web>
    <compilation>
        <assemblies>
            <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
</system.web>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.