Visual Studio 2015または2017でIntelliSenseエラーが表示されるが、ソリューションがコンパイルされる


122

現在、新しい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ディレクトリの削除、ソリューションのクリーンアップと再構築などを試みましたが、何も機能しませんでした。

誰かがその行動を私に説明できますか?


2
intellisenseが使用するパーサーは、コードを実際にコンパイルするために使用されるコンパイラーと同じではありません。

1
これはVS 2013でも発生します。VSがコードベース全体のインデックス作成をまだ完了していない可能性があります。コンパイルして期待どおりに動作する場合は、特に注意しません。
コードが異なる

2
@chill VS2015では、Roslynの一部である同じパーサーである必要があります。
Lasse V. Karlsen、2015

1
問題を再現する小さなプロジェクトを作成できますか?もしそうなら、あなたはコードを投稿できますか?
ラッセV.カールセン2015

クラスは部分的ですか、それともコンパイル時に生成されますか?
Panagiotis Kanavos 2015

回答:


58

また、移行したプロジェクトでこの問題が発生したため、Microsoft.CSharp dllを参照しました。一部のプロジェクトでは、プロジェクト内の参照を削除して再度追加する必要がありました。


3
チームメンバーが新しいプロジェクトをソリューションに追加し、いくつかのcsファイルを既存のプロジェクトから新しいプロジェクトに移行したときに、これを行う必要がありました。最新の状態にすると、多くのエラーが表示されましたが、コンパイルして実行できました。問題のあるプロジェクトから新しいプロジェクトへの参照を削除して再度追加するのがうまくいきました。
ビル

1
ビルが説明したのとまったく同じ状況が私たちに起こりました。一部のクラスは新しいプロジェクトに移動されました。新しいプロジェクト参照がソース管理からインポートされたとき、Visual StudioはIntellisenseキャッシュを更新しなかったようです。リファレンスを再入力すると、手動でVSに入力を強制しました。
Peter Macej

2
ソリューションはコンパイルされますが、一部のファイルに波線のエラーが表示されます。「リリース」に示されているエラーはなく、デバッグのみです。Microsoft.CSharpを削除しました。エラーはなくなりました。ありがとうございます!
マイケル

@マイケルその先端をありがとう。私はまったく同じ問題を抱えています。リリースにはエラーはありませんが、デバッグには多くのエラーがあります。
user2061057

上記のクラスが独自のコードである場合は、クラスを含むファイルを除外してから含めることができます。VSをトリガーしてIntelliSenseを更新する必要があります。#awfulbug
デビッドS.

198

何千ものインテリセンスエラーと0のビルドエラーがありました。.suoファイルを削除してVSインテリセンスを再起動した後、エラーはなくなりました。

Suo ファイルはソースと相対的に次の場所にあります: .vs\SolutionName\v14\.suo

コメントによると:これ*.suoは隠しファイルであることに注意してください。

編集:コメントによると、VS2017にも同じ問題があるため、同様のソリューションを使用できます:削除。vs\SolutionName\v15\.suo


7
注:*.suoファイルが非表示になる場合があります。したがってView Hidden files、Windowsエクスプローラからオプションを有効にする必要があります。
2015

6
.suoを削除しても効果はありませんでしたが、binとobj dirを削除してから、ソリューションを再構築しても問題ありませんでした。
HolgerBöhnke16年

.suoファイルを削除しても問題は解決しませんでした(VS2015の場合)分離コードのプロパティを参照する偽の赤い波線 <%=Foo%>が変数に宣言されていませんが、すべて実行時に機能します。
Tim

100%確実ではありませんが、XAMLで発生していた無効なマークアップエラーも修正された可能性があります
Geordie

見つける。-name "* suo" -exec rm -rf {} \;
Derek Greer 2017

20

Visual Studio 2017 ASP.Net Core Projectの同様の問題に遭遇しました。次の手順は私のためのトリックをしました

  1. クリーンソリューションを実行する
  2. VSを閉じる
  3. .suoファイルの削除とbin / objディレクトリの削除
  4. VSを再開

1
これは機能しますが、時々行うには退屈なことです。リリースモードでビルドするとき、私は常にこの問題を抱えています。奇妙なVSは、それだけでは理解できません。
nawfal 2017年

12

他と同様の問題ですが、解決策が異なります。他の人を助けることができるように投稿する。

Visual Studio 2017 15.5.2を実行します。私はGitを使用し、頻繁にブランチを切り替えます。数週間前、私はエディターにエラーを表示させるようにしました(参照が有効であったとしても、すべてのタイプに関連していて、見つけることができませんでした)。コンパイルはうまくいきました。VS 2017 15.6 Previewで同じ問題を確認しました(2018年1月6日)。キャッシュ、SUOファイル、またはbin / objフォルダーを削除しようとしましたが、影響はありません。最初は動作するように見えます。Visual Studioを再度開くと、すべてが適切に表示されます。「ソリューションの再構築」を使用すると、IntelliSenseエラーが返されます。Visual Studioのアンインストール/再インストールも試しました。

2つのマシンで同じ問題が発生しましたが、どちらも同じバージョンのVisual Studioを使用しています。

欠落しているタイプに関するエラーを見ると、それらはすべて、2つの参照プロジェクトに由来しているように見えました。これらの参照の1つは、ソリューション内の他のほぼすべてのプロジェクトで使用される共有プロジェクトでしたが、それらの1つは、多くの参照のない小さなプロジェクトでした。たまたま、小さなプロジェクトが私の大きな共有プロジェクトからも参照されていました。Visual Studioで、小さなプロジェクトをアンロードして再ロードしました。エラーはなくなりました!これらのエラーは、Rebuild Solutionでは発生しませんでした。

次にGitブランチを切り替えたところ、エラーがすべて返ってきました。幸い、上記の小さなプロジェクトのアンロード/再ロードの手順を繰り返したところ、エラーはなくなりました。

Gitブランチを切り替えるたびに、そのプロセスを繰り返すまでエラーが再発します。アンロード/再ロードする小さなプロジェクトのGitブランチ間に変更はありません。そのシーケンスが私の問題を修正している理由が不明です。


これに基づいて、3つの「テスト」または「アーキテクチャ」関連プロジェクトをアンロードしてから、Intellisenseエラー入力プロジェクト(WPF)をアンロードして再ロードしました。0 of 0エラー:) +1は、HgCoderに似たものを試すように導いた個別の詳細です。
Steven_BDawg

VS 2017を使用する15.9.9。Gitを使用する。R#の使用。私も定期的にブランチを切り替えます。私のエラーは確かにすべてのIntelliSenseです。プロジェクトをアンロードすると、[エラーリスト]タブの[プロジェクト]列が<不明>になります。だから、それはそれを少し蹴っているように見えます。プロジェクトのアンロードも私にとってはうまくいったようです。クリーンソリューション+リビルドソリューションは最終的に0エラーをもたらしました。
dthal

7

また、この問題(特定のエラーメッセージではなくタイトル)と、エディターの波線がありました。最初の波線は最初の#includeステートメントの下にあり、プリコンパイル済みヘッダーを指定しています。Intellisenseはプリコンパイル済みヘッダーを含めませんが、それをエラーとしてリストしません。代わりに、(非常に正当に)プリコンパイル済みヘッダーの宣言に依存するコードで、ファイルのさらに下にエラーをリストします。

Intellisenseが私の環境でプリコンパイル済みヘッダーを見つけられない理由は、指定されたヘッダーが実際のファイルではないためです。プリコンパイルされたヘッダー設定が正しく構成されている限り、私が使用した他のVCまたはgccバージョン、または2015コンパイラーである必要はありません。どうやらIntellisenseにはもはやない。2013年には違いがあったかどうかは完全にはわかりませんが、気づかなかっただけかもしれません。

これがここで報告される問題であるというまれなケースでは、解決策は簡単です。#includeディレクティブで指定されているように、プリコンパイル済みヘッダーのpretend-nameで小さなファイルを作成し、そのファイルにプリコンパイル済みヘッダーの実際の名前を含めます。

不思議に思うのは... '#include'ステートメントのプリコンパイル済みヘッダー名とプリコンパイル済みヘッダーの実際のファイル名の違いは何ですか?これは、プリコンパイル済みヘッダー設定が正しく構成されていることを保証するためです。プリコンパイル済みヘッダーが「#included」である場合は常に、インクルードされる可能性のあるファイルはありません。実際にプリコンパイルされた(バイナリ)バージョンの実際のヘッダーが読み取られるか、コンパイルが失敗します。明らかに、デメリットは、Intellisenseだけでなく、コードを読む人々を混乱させることです。


2

Visual Studio 2017場所.vs \ SolutionName \ v15.suoから「.suo」ファイルを削除し、Visual Studioを再起動しました。これでうまくいきました。


2

今日、MSVC ++ 2015で同様の問題が発生しました。ほぼ諦め、IDEヒントなしで続行することにしましたが、突然、問題が発生したプロジェクトのstdafx.hに標準ライブラリヘッダーが含まれていないことに気付きました。stdafx.hのプロジェクトで使用されるすべての標準ヘッダーを含めると、コンパイル速度が上がる可能性があると推測しましたが、これによりIntellisenseエラーも修正されました。


1

stdfax.h追加インクルードディレクトリに複数ありました。stdafx.h意図したものがパスの最初にあることを確認してください。


1

異なるバージョンのVisual Studioでも同様の問題がありました。

.suoまたは.vsフォルダーを削除しても、役に立ちませんでした。

私にとっての解決策は、拡張StopOnFirstBuildErrorをアクティブにすることでした。ビルドメニューの[最初のエラーでビルドを停止]をオフにした後、ソリューションが完全にビルドされた後、Intellisenseによって表示されたエラーはなくなりました。


1

Webサイトを公開するときにのみ、インテリサーチエラーが表示されました。(ASP / C#サイト、VS 2017)。彼らは出版を破った。サイトはローカルで問題なく実行されました。

プリコンパイルする設定をオフにすることでエラーをクリアし、問題なく公開しました。公開->設定->ファイル公開オプション->公開中のプリコンパイル


1

Visual Studio 2019での問題は、プロジェクトにNuGetパッケージがインストールされている場合にGitでブランチを変更することです。これを解決するために私がしたこと:

  1. クリーンなソリューション
  2. Visual Studioを閉じる
  3. パッケージフォルダを削除する
  4. Visual Studioを開く
  5. パッケージマネージャーに移動
  6. すべてのパッケージを復元する
  7. 再コンパイル
  8. roslynがない場合は、Visual Studioを閉じてから開き、再コンパイルします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.