web-dev-qa-db-ja.com

プロジェクトがビルドされてもエラーを表示するVisual Studio

C#ソリューションでVisual Studioに問題があります。まったくランダムなエラーが表示されますが、プロジェクトは構築されます。今、私はエラーのある33ファイルを持っています、そして私はそれらすべての中に赤いしわのある線を見ることができます。

私は、ソリューションのクリーニング/再構築を試み、Visual Studioを閉じ、さらにはコンピュータを再起動しました。また、Visual Studioでコンパイラのエラーが発生してもデバッグの実行に記載されている手順を確実に実行するようにしました。私は.csファイルを修正することができ、私はソリューションの変更を見ます。

それがなぜそれをするのかについて誰かが考えを持っていますか?

236
CydrickT

ReSharperがある場合は、ReSharperキャッシュを空にしてみてください。

メニューで、ReSharper> Options> Environment> General> Clear Caches

reSharperの無効化と再有効化

メニューで、ツール>オプション> ReSharper>一般>中断/復元

304
CydrickT

Resharperのキャッシュをクリアする 私の場合は役に立ちませんでした suspend/restore そしてまたJetBrainsのウェブサイトから最新のダウンロードを使ってRepair Resharperを試してみました - どちらも役に立ちませんでした。これは、VSのクローズ/再オープン、マシンの再起動、ビルド/再構築、およびそれらの組み合わせを繰り返した後です。

Resharperを一時停止するとVSの2nd再起動後に問題が解決したようですが、Resharperを有効にした後に戻ってきました< - やってみましたパターンを確実にするために、このシーケンスを2-3回行います。

とにかく、私はこの記事を見つけたとき私はまだ問題を抱えていました:

それで私は---と同じフォルダーレベルの 隠された.SUOファイル を削除しました、そしてそれは魔法のようにすべての赤を解決しました。

注 - Visual Studio 2015の場合、。SUOファイルはにあります。vs/[solution_name]/v14隠しフォルダ。

157
Neolisk

tldr;問題のあるプロジェクトをアンロードして再ロードします。

これが私に起こるとき、私は(以前)VSを閉じて、それを再び開くことを試みます。それはおそらく半分の時間でうまくいきました。うまくいかなかった場合は、ソリューションを閉じて、.suoファイル(または.vsフォルダー全体)を削除して、ソリューションをもう一度開きます。これまでのところ、これは私のために常に働いてきました(過去6ヶ月で10回以上)、しかしあなたのビルドモード、スタートアッププロジェクトなどのいくつかの事柄がリセットされるので少し面倒です。

通常、問題が発生しているのは1つのプロジェクトだけなので、そのプロジェクトをアンロードして再ロードしてみたところ、うまくいきました。私のサンプル数はわずか1ですが、他の2つの方法よりはるかに速いので、おそらく試す価値があります。これは、.suoファイルに書き込みを行い、問題の原因となっている破損部分を修正するためと考えられます。

注:これはVS 2017と2015の両方で機能するようです。

55
TTT

私は解決策をきれいにし、VSを閉じ、それを再び開き、解決策を構築し、そして赤い未解決の行をきれいにしそして構築に成功した。

33
pixel

私は、Visual Studio 2017でGitを使用しているときに頻繁に起こることを発見しました依存するコードの変更があるところでブランチを切り替える。プロジェクトは正常にビルドされますが、エラーリストにはエラーが残ります。

これらのエラーは、ライブラリ参照が存在する場合でも、名前空間の問題であり、参照が欠落していることがよくあります。

解決する:

  • Visual Studioを閉じる
  • {隠しファイル} {sln-root} .vs\SlnName\v15.suoファイルを削除します。
  • Visual Studioを再起動します。
22
Rebecca

Intellisenseが1つのプロジェクトの存在を認識していないような(このタイプが見つからない、「この名前空間が存在しない」などのような)エラーが発生しました。

参照しているすべてのプロジェクトでプロジェクト参照を削除して再追加すると問題は解決しますが、根本的な原因は問題のあるプロジェクトの.projファイルを編集することで解決できます。

"欠けている"プロジェクトの.csprojファイルの先頭近くに要素があります。

<ProjectGuid>{GUID}</ProjectGuid>

また、参照しているすべてのプロジェクトで、.csprojファイルはプロジェクト参照でした。

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

参照しているGUIDがプロジェクトのGUIDと一致しませんでした。上記の{GUID}{ANOTHER-GUID}に置き換えることで、参照しているすべてのプロジェクトを通過することなく問題を解決しました。

11
Philip C

私は6つのオプションすべてを試してみました、私のために何も働かなかった。以下の解決策は私の問題を解決しました。

VSを閉じます。ソリューションファイルの横にある隠れた ".vs"フォルダを削除します。 VSを再起動してソリューションをロードします。

10
suresh t

隠しファイルパス= あなたのソリューション\.vs\あなたのソリューション名\v15\.suoを削除します。

5
NoXSaeeD

vS-2017では、.vsフォルダを削除するとうまくいきました。

5

これが人気のある答えの集まりです。それがあなたを助けたならば、答えのOPを支持してください:

オプション1:クリーン、ビルド、そして更新( @ Mike Fuchs option)

@ Mike Fuchs が述べたように、以下の操作を試してください。

メニューで、Build> Clean Solutionの順にクリックします。

そして

メニューの[ビルド]> [ソリューションのビルド]

問題のプロジェクトを選択して、更新ボタンをクリックします。

Refresh Button

オプション2:クリーン、クローズ、再起動、ビルド( @ Pixel option)

@ Pixel にあるように、次の一連の操作を試してください。

  1. 解決をきれいにしなさい
  2. Visual Studioを閉じる
  3. Visual Studioを開く
  4. ソリューションを構築する

オプション3:ReSharperキャッシュをクリアする( @ CydrickT オプション)

ReSharperがある場合は、ReSharperキャッシュを空にしてみてください。

メニューで、ReSharper> Options> Environment> General> Clear Caches

reSharperの無効化と再有効化

メニューで、ツール>オプション> ReSharper>一般>中断/復元

オプション4:.suoファイルを削除する( @ Neolisk オプション)

@ Neolisk にあるように、.suoファイルを削除すると問題が解決する可能性があります。 Visual Studio 2015の場合、ファイルは次の場所にあります。

[ソリューションのパス] /。vs/[ソリューション名] /v14/.suo

そしてVisual Studio 2017の場合:

[ソリューションのパス] /。vs/[ソリューション名] /v15/.suo

.vsディレクトリが隠されていることに注意してください。

オプション5:プロジェクトのアンロードと再ロード( @ TTT オプション)

@ TTT が述べたように、問題を起こしているプロジェクトをアンロードしてみてください。

ソリューションエクスプローラーで、プロジェクト、Unload Projectを右クリックします。

そしてそれを再ロードする

ソリューションエクスプローラーで、プロジェクト、Reload Projectを右クリックします。

オプション6:Microsoft.CSharp参照を削除して追加する( @ Guilherme option)

@ Guilherme のように、問題があるプロジェクトから "Microsoft.CSharp"への参照を削除して追加してみてください。

ソリューションエクスプローラで、プロジェクトを展開し、[参照設定]を展開して、[Microsoft.CSharp]を右クリックして[削除]をクリックします。

次に、「参照」>「参照の追加」を右クリックして、リストから「Microsoft.CSharp」を選択し、「OK」をクリックします。

3
CydrickT

次の解決策は私のために働いた

1 - クローズVS

2 - .vsフォルダを削除します

3 - オープンVS

4 - ソリューションを構築する

3
Vijay Hugar

時折私はすべてのプロジェクトを通過して手動で "bin"と "obj"フォルダを削除することによってカスタムクリーンをする必要があります。それらをVisual Studioで表示するには、各プロジェクトに対して隠しファイルと隠しフォルダを有効にする必要があります。これが完了したら、ソリューションを再構築します。

3
Technobabble

おそらくあなたはあなたのインテリセンスキャッシュをリセットしようとします。多くの部分クラス定義を含む大規模プロジェクトで作業しているとき、私はビジュアルスタジオ2012で同様の問題を抱えていました。パーシャルを減らすことで部分的に問題を解決し、インテリセンスキャッシュもクリアしました - しばらくの間。

2
Daniel Nachtrub
  1. 最初に解を閉じます。
  2. その後、ソリューションキャッシュファイルの削除(場所C:\ Users\Documents\Visual Studio\Backup Files /プロジェクトキャッシュファイル内)
  3. それから.suoファイル削除
  4. それからソリューションを開いて構築します。

あなたの問題を解決してほしい

1
Mahfuz Morshed

私の同僚が今日この問題を経験しました。ここでは多くの推奨事項を試してみましたが、以下で説明されている解決策以外は機能しませんでした。

問題:

プロジェクトは正常にビルドされますが、Intellisenseは特定のタイプを認識できず、特定のusingステートメントを無効としてマークします。

溶液:

'Solutions Platform'(VS 2017では、これはSolution Configurationドロップダウンの横にあるドロップダウンで、x86、x64、AnyCPU、Mixed Platformsなどの値を持ちます)をAnyCPに変更します。

プロジェクトのプラットフォームはさまざまですが、参照によってはすべてのプラットフォームに有効ではない可能性があります。

1
AperioOculus

0 - Solutionを右クリックし、溶液をきれいにする

1 - クローズVS

2 - プロジェクトの.suoファイルを削除する

3 - オープンVS

4 - ソリューションを構築する

1
nPcomp

リストされたすべてのオプションを試した後、私はこれが起こることができるもう一つの理由を発見しました。誰かがあなたにZipとしてソースコードを送ったか、あなたがZipをダウンロードしたなら、Windowsはすべてのファイルをブロックしたかもしれません。これを解決する2つの方法:

方法1 :

元のZipファイルを右クリックし、[ブロックを解除]をクリックして、[適用]をクリックします。

方法2 :

これが選択肢ではない場合は、ソリューションフォルダ内のすべてのファイルのプロパティを開くのではなく、単にPower Shellを開いて次のように再帰的にブロック解除します。

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File
1
Conor Gallagher

時々gitブランチを切り替えるとき、Visual Studio(2017)は2番目のブランチで追加されたいくつかのファイルからの型を認識しないことに気づきました。 .vsフォルダを削除すると解決されますが、ワークスペース設定もすべて削除されます。このトリックは私にはうまくいくようです。

  1. ソリューションエクスプローラ - >認識できないクラスが含まれているファイルを探します。
  2. ソリューションエクスプローラの上部にある[すべてのファイルを表示]をクリックします。
  3. ファイルを右クリックし、[プロジェクトから除外]をクリックします。
  4. ファイルをもう一度右クリック - >プロジェクトに含める.

これにより、Intellisenseは分岐の切り替え時に見逃したファイルを解析します。

1
Erik

仕事でこの問題を抱えていた(VS2017を実行している)。ここですべての答えを試してみました。喜びはありません。

プロジェクトは問題なく構築できましたが、名前空間/型が見つからないと訴えていました。あちこちに赤いしわが寄っています。 Error Listウィンドウに多数のエラーがあります。

私のソリューションには3つのプロジェクトが含まれていました。

プロジェクトのうちの1つについてのNuGetライブラリ参照のうち3つが正しくないことを発見した。参照されているライブラリのバージョンとビンゴを統合しました。

これが誰かに役立つことを願っています。

ブレット。

1
Brett

私の特定のケースでは、それは他の開発者がメインブランチにマージしたサービス参照でした。構文の強調表示が生成されたサービスクラスを解決できず、ソースに赤の下線が引かれていたことを除けば、どれも完全に問題ありませんでした。クリーニング、再構築、再起動は何もしませんでした。

私がしなければならなかったのはサービス参照を更新することだけでした、そしてVSは舞台裏で部分をまとめることができました。ソースコードや生成されたファイルに変更はありません。

プロジェクトをアンロードして再ロードすると、この問題は解決しました。

1
Ankush Jain

プロジェクトにファイルを追加したgitコミットを元に戻した後、私はこの問題に遭遇しました。

各ステップの間にVSを閉じても、プロジェクトのクリーニングと再構築はうまくいきませんでした。

結局うまくいったのは、ファイルの名前を別の名前に変更して元に戻すことでした。 :facepalm:

1
KidCode

私の場合、vsはプロジェクトのプロパティ> referencesにインポートされた名前空間を決して保持していませんでした。

私がそれらを追加/チェックしようとしたとき、私はできなかったし、vsはエラーを投げました、そして保存されたプロジェクトvsはクラッシュしました。私が再び開いたとき、すべての標準的にインポートされた名前空間(system.dataなど)が再びチェックされていて、それからそれはエラーなしですべてを認識していました

0
m butler

解決策をきれいにしただけでエラーが消えてしまうこともありますが、しばらくしてまたは次のビルドでエラーが発生することがあります。

0
meJustAndrew

ソリューションが正常に構築されたにもかかわらず赤い波線を示していたVisual Studioによって認識されていない単一のタイプでこの問題を調べました。ソリューションエクスプローラーで、ファイルの左側に展開時のクラスとプロパティを示す展開矢印がないことに気付きました。

この問題を修正するには、プロジェクトからファイルを除外し、予期したエラーが発生した保存/ビルドしてから、ファイルをプロジェクトに含めて保存してビルドします。

これらのステップを実行した後、Visual Studioは再び私のタイプを認識し始めました。 gitの差分を見ると、問題は私の.csprojファイルの<Compile Include="..." />行で行末が一致していなかったことが原因であると思われます。

0
Thorb

参照されているプロジェクトが、それを使用しようとしているプロジェクトよりも高いバージョンのフレームワークをターゲットにしている場合、これが発生する可能性があることがわかりました。これが問題であるかどうかは、出力ウィンドウに行き、これに似たものを探すことでわかります。

プライマリ参照 "my_reference"は ".NETFramework、Version = v4.7.2"フレームワークに対して構築されているため、解決できませんでした。これは現在ターゲットとなっているフレームワーク ".NETFramework、Version = v4.7"よりも高いバージョンです。

解決策は、いずれかのプロジェクトのターゲットフレームワークを変更することです。

0
michaela112358

TL; DR: Visual Studioのクリーンインストールを実行します。

数時間を無駄にした後、私はまだそれをVisual Studio 2017用に修正することができませんでした。それから私はVisual Studio 2019 PREVIEWをインストールし、突然突然、IntelliSenseは再びSTLクラスのメンバーを表示します。 ).

だから、私の推測では、Visual Studio自体にも問題がある可能性があります(おそらくキャッシュディレクトリにあるもの、または一般的には特定のソリューションに直接関連しないPC上のもの)。 Visual Studioのインストール私は知っている、これは愚かな "解決策"ですが、私の場合では、新鮮なVisual Studio(2019)インストールだけが効果がありました。

すでに述べたように、私の場合は、STLクラスだけが影響を受けました。 IntelliSenseはメンバーを表示しませんでしたが、これは奇妙なことです。私は、プリコンパイル済みヘッダーと関係があるかもしれないと考えました。どこかに私はSTLとプロジェクトが同じドライブ上にあるべきであり、それらを同じドライブに置くべきであると読んだ。しかし、これらの経路のどれも成功に結びつかなかった。

0
j00hi