◀ 3.

Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処

▶
この記事の要点
  • Visual Studio で発生するエラーはエラー一覧ウィンドウ(Error List)で確認 — 表示 → エラー一覧(キー割当は設定で確認)
  • 種類はエラー(赤)/ 警告(黄)/ メッセージ(青)の 3 段階
  • 主要分類: コンパイルエラー(CS / C など)リンクエラー(LNK)IntelliSense エラー(IDE 内のみ)
  • エラーコードはダブルクリックで該当行へジャンプ、F1 でドキュメントを開ける
  • 1 件ずつエラー番号で検索するのが解決の近道 — Microsoft Learn や Stack Overflow に詳細あり

Visual Studio のエラーとは

対象は Windows 版 Visual Studio のエラー一覧です。Visual Studio Code や旧 Visual Studio for Mac と同じ画面・操作ではありません。以下の画面・キーは主に Visual Studio 2022 を対象とし、利用版・言語・キーボード設定により異なります。

子ページからエラーを選択してください。現在の直接の子は表示順1の ドキュメントが読み込まれなかったため、デザイナーを表示できません です。これはデザイナー読込み段階の案内で、コンパイラやリンカーのエラーとは分けて読みます。子ページのキャッシュ削除・プロセス終了・修復を、全エラー共通の手順として実施しないでください。

Visual Studio はビルド時にコードを解析し、誤りや潜在的な問題をエラー一覧(Error List)ウィンドウに表示します。子ページに個別のエラーコード解説を蓄積していく一覧ページですが、まずはエラー一覧の基本操作とエラーの読み方を押さえましょう。

エラー一覧ウィンドウの開き方

  • メニュー: 表示 → エラー一覧
  • ショートカットは設定依存。General プロファイルの既定例は Ctrl + \, E。Ctrl + W, E が割り当てられた環境もあるため、環境 → キーボードの View.ErrorList を確認する
  • ビルドエラー発生時に自動でフォーカスされる場合あり

3 段階のレベル

レベル色意味
エラー赤の×エラーとして報告された診断。Build / IntelliSense の出所と実際のビルド結果を区別する
警告黄の△警告。通常はビルドを止めないが、警告のエラー化設定で失敗する場合がある
メッセージ青の i情報。改善提案や注意喚起

エラーコードの体系

プレフィックス意味例
CSC# コンパイラエラーCS0103 名前 '...' は現在のコンテキストに存在しない
BCVB コンパイラエラーBC30451 宣言されていません
CC/C++ コンパイラエラーC2065 未宣言の識別子
LNKリンクエラーLNK2019 外部シンボルが解決できない
CAコード分析の警告CA1822 メンバを static にできる
MSBMSBuild エラーMSB3073 コマンドが終了コード 1 で終了
NUNuGet 関連NU1605 パッケージのダウングレード検出
IDEIntelliSense / IDE 警告IDE0001 名前を簡略化できる

よくある C# エラー(CS 系)の例

コード意味対処
CS0103名前が存在しない綴り・宣言の有無・スコープ・名前空間を確認し、必要な場合だけusingを補う
CS0246型または名前空間が見つからない綴り・名前空間・既存参照・復元結果と対象フレームワークを先に確認。無関係なパッケージを追加しない
CS1002; が必要セミコロンを補う
CS1061定義に '〜' が含まれないtypo / 拡張メソッドの using 漏れ
CS0117その型に指定したメンバーの定義がない(静的メンバーだけに限定しない)正しいクラス / typo を確認
CS0029暗黙の変換ができない変換元・先の型と意図を確認。適切な変換が存在するときだけ明示変換し、キャストの機械的追加はしない
CS0019演算子は型に適用できない型同士の演算子の妥当性確認
CS8602null 参照の可能性(NRT)参照前のnull判定や値の供給元を確認。型をnull許容にするだけでは参照時の危険は解消しない

よくある C++ エラーの例

コード意味対処
C2065未宣言の識別子ヘッダ include / typo 修正
C2143構文エラー:必要なトークンが別のトークンの前にないメッセージのトークンと直前の構文を確認。セミコロン不足とは限らない
C2664引数を型変換できない引数の型を見直す
LNK2019外部シンボルが解決できないライブラリ / オブジェクトのリンク漏れ
LNK2001未解決の外部シンボル同上 / 関数定義が見つからない

エラーから素早く解決する手順

  1. コードとメッセージを一緒に記録し、対象プロジェクト・ファイル・行、Build / IntelliSense、構成・プラットフォームを確認。公開時は秘密値やローカルパスを伏せる
  2. 該当行をダブルクリックで開く
  3. F1 キーで Microsoft Learn のページを開く
  4. キーワード(コード + メッセージ要約)でMicrosoft Learn / Stack Overflow を検索
  5. 修正後は同じ構成でビルドして結果を比較。既定の Ctrl + Shift + B はソリューションのビルドであり、クリーンを含むリビルドとは別

エラー一覧のフィルタリング

ウィンドウ上部のチェックボックスやドロップダウンで以下を切り替えできます。

  • エラー / 警告 / メッセージ の表示 ON/OFF
  • ビルド + IntelliSense / ビルドのみ / IntelliSense のみ
  • 現在のプロジェクト / 開いているドキュメント / ソリューション全体
  • 検索ボックスでエラーコード / メッセージを絞り込み

クイックアクション(電球マーク)

エラー行に表示される電球マーク(または Ctrl + .)から、IDE が候補修正を提案します。using 追加、変数生成、メソッド抽出など、ワンクリックで適用可能です。

警告の警告レベル設定

警告設定は言語・SDK・プロジェクト形式で異なります。C# の WarningLevel は0〜4だけに限定されず、4超の warning wave もあります。.NET 7以降はTFMと AnalysisLevel も既定値に関係します。C++ の /W0〜/W4・/Wall やアナライザーのseverityとは区別し、エラーを隠すために設定を下げず、各診断の意味を確認します。

IntelliSense エラー vs ビルドエラー

種別性質対処
IntelliSense エラーIDE のリアルタイム解析。ビルドは通る場合あり同じ構成・対象でBuildの結果と比較し、参照・SDK・解析元の違いを確認
ビルドエラービルド処理で報告された失敗(コンパイル以外のMSBuildタスク等も含む)出力ログで失敗した段階と先行診断を確認し、その原因を修正

赤波線だけでキャッシュ破損と断定しません。エラー一覧のソース・対象フィルターと出力ログを確認し、利用SDK・参照・構成が一致するか比較します。.vs 削除や再読み込みを一律の初手にはしません。

ビルド出力ウィンドウとの違い

ウィンドウ役割
エラー一覧エラー/警告/メッセージを構造化して表示
出力(ビルド)MSBuild の生ログ。コマンドや詳細を確認

エラー一覧で原因不明なときは出力ウィンドウのビルドログを見ると、MSBuild のターゲット実行ログから根本原因が分かることがあります。

FAQ

Q: 同じエラーが大量に出る
A: 連鎖エラーなら先行原因の修正で減る場合があります。ただしエラー一覧は列で並べ替えでき、画面の先頭が発生順とは限りません。出力ログで該当プロジェクトの先行診断を確認し、修正後に同条件で比較します。

Q: 警告は無視してよい?
A: 内容次第。null 参照可能性(CS8602)や使われない変数(CS0168)など潜在バグ系は対処すべき。スタイル系はEditorConfig でルール化を検討。

Q: エラーコードがどの言語/機能のものかわからない
A: F1 でドキュメントを開く、またはMicrosoft Learn でコード名を検索。プレフィックスがヒントになります(CS=C#、C=C/C++、LNK=リンカー)。

外部ツールとの連携

大規模プロジェクトでは Visual Studio 単体のエラー一覧に加え、以下のツールがエラー / 警告検出を補強します。

ツール役割
Roslyn AnalyzersC# のカスタム静的解析(追加ルール)
StyleCop AnalyzersC# コーディング規約のチェック
SonarLint / SonarQube多言語の品質 / セキュリティ静的解析
ReSharperJetBrains 製の VS 拡張(高度な解析と修正提案)
Code CleanupVS 標準の自動コード整形 + 簡易リファクタ

CI でビルド警告をチェックする

CIでの警告のエラー化は有用ですが、C# の TreatWarningsAsErrors はC#コンパイラに作用し、MSBuild の -warnaserror はタスク全体に作用するため同一ではありません。次の既存例は dotnet SDK を使うC#ビルド向けで、全言語・全ビルド段階の警告を同じ範囲で検出する保証ではありません。まず対象と既存の警告方針を確認します。下の2本目はBashでは掲載の引用形のまま実行しないでください。シェルで引用符が外れた後、MSBuildがセミコロンをプロパティの区切りと解釈し、値の後半を不正なプロパティとして拒否し得ます。プロジェクト側で指定する場合は、既存のPropertyGroupと対象条件を確認して<WarningsAsErrors>CS8602;CS8603</WarningsAsErrors>のように列挙します。これはMSBuild引数の引用・分割と別の指定方法で、全シェル共通のコマンド実行を保証する例ではありません。

# 例: CI で警告をエラーとして扱う
dotnet build /p:TreatWarningsAsErrors=true

# 特定の警告のみエラー化
dotnet build /p:WarningsAsErrors="CS8602;CS8603"

一次資料:エラー一覧、キー割当とBuild、C#警告設定とMSBuildとの差、null許容参照型の警告、CS0117、CS0029、C2143。

関連

  • Visual Studio — Microsoft の統合開発環境
  • MSBuild — VS のビルドエンジン
  • IntelliSense — IDE のコード補完 / 解析
  • Microsoft Learn — 公式ドキュメント
  • EditorConfig — エディタ / コード規約の共有
  • Roslyn Analyzers — C# 用の追加静的解析

公式仕様の確認先:Visual Studio2022エラー一覧、C#の警告とエラー(2026-10-28確認)。画面・設定・コードは対象版と各例の前提条件を照合してください。

子ページ
  1. ドキュメントが読み込まれなかったため、デザイナーを表示できません
同階層のページ
  1. ショートカットキー
  2. dllを参照する方法
  3. エラー一覧
  4. 本番環境のdll内で参照しているdllファイルの置き場所
  5. フォームのタブ切り替え順序を変更する方法
  6. .suoファイルとは

最近更新/作成されたページ