Visual Studio 2015或2017顯示IntelliSense錯誤,但解決方案已編譯




visual studio 2015 javascript intellisense (7)

我們目前正在評估新的Visual Studio 2015,並遇到了IntelliSense的奇怪問題。 當我用新工作室編譯主要解決方案時,構建成功,但是顯示了6個錯誤。

我發現這不是一個真正的錯誤,而只是一個智能錯誤。 該代碼絕對正確,並且一切都成功編譯。 但是,該代碼標記為紅色,並且錯誤顯示在錯誤列表中。

所有6個錯誤的起因均相同。 這是一個簡單的構造函數調用。 足夠奇怪,但是也有一些完全相同的構造函數出現而沒有任何錯誤。

錯誤信息:

Code: CS1729
Message: '<the class>' does not contain a constructor that takes that many arguments.
Project: <the project name>
File: <the path to the file>

新工作室安裝在沒有任何舊版軟件(沒有VS13)的全新安裝的Windows 7上。

我已經嘗試清除緩存,刪除suo文件,刪除bin和obj目錄,清理並重建解決方案等。但是沒有任何效果。

誰能向我解釋這種行為?


Visual Studio 2017我已經從位置.vs \ SolutionName \ v15.suo中刪除了“ .suo”文件,然後重新啟動了Visual Studio。 這對我有用。


也有這個問題(標題,而不是特定的錯誤消息),以及編輯器中彎曲的行。 第一行彎曲在第一條 #include 語句下,該語句命名一個預編譯的標頭。 Intellisense無法包含預編譯的標頭,但不會將其列為錯誤; 相反,它會(非常正確地)依賴於預編譯頭文件中的聲明的代碼在文件的更下方列出錯誤。

Intellisense在我的環境中找不到預編譯標頭的原因是,該標頭不是實際文件。 只要正確配置了預編譯頭設置,它就不必在我使用的任何其他VC或gcc版本中,也不必在2015年編譯器中。 顯然,Intellisense不再適用。 我不完全確定2013年會有所不同,也許我只是沒注意到。

在不太可能的情況下,這是這里報告的問題,解決方案很簡單:按照 #include 指令中的說明,創建一個帶有預編譯頭的假名的小文件,並讓該文件包含預編譯頭的實際名稱。標頭。

如果您想知道...為什麼在'#include'語句中的預編譯標頭名稱和預編譯標頭的實際文件名之間進行區分? 正是因為它保證正確配置了預編譯頭設置。 凡是預編譯的標頭位於“ #included”的地方,都不會包含該文件。 讀取實際的標頭的實際預編譯(二進制)版本,或者編譯失敗。 顯然,缺點是它使 人們在 閱讀代碼時不僅使Intellisense感到困惑。


在Visual Studio 2017 ASP.Net Core Project中遇到類似問題。 遵循步驟對我有用

  1. 執行清潔解決方案
  2. 關閉VS
  3. 刪除.suo文件和刪除bin / obj目錄
  4. 重新打開VS

我僅在發佈網站時才看到intelellisearch錯誤。 (ASP / C#網站,VS 2017)。 他們打破了出版。 網站在本地運行良好。

通過取消選中要預編譯的設置來清除錯誤,並且它可以很好地發布。 發布->設置->文件發布選項->發布期間預編譯


我在使用不同的Visual Studio版本時遇到了類似的問題。

刪除.suo或.vs文件夾對我沒有幫助。

對我來說,解決方案是,我激活了擴展StopOnFirstBuildError。 在構建菜單中關閉“在出現第一個錯誤時停止構建”之後,並且在完全構建解決方案之後,Intellisense顯示的錯誤消失了。


我有成千上萬的智能錯誤和0生成錯誤。 刪除 .suo 文件並重新啟動VS後, .suo 錯誤消失了。

Suo 文件相對於源文件位於: .vs\SolutionName\v14\.suo

根據評論:注意 *.suo 是隱藏文件。

編輯:根據評論,VS2017具有相同的問題,因此您可以使用類似的解決方案:Delete。 vs\SolutionName\v15\.suo


遷移的項目也存在此問題,因此我引用了Microsoft.CSharp dll。 在某些項目中,我需要刪除並在項目中再次添加引用。





visual-studio-2015