CS801~2000

C# コンパイラ エラー CS1902 の原因と対処法を解説

CS1902はC#コンパイラで発生するエラーです。

/debugオプションに不正な値が指定された際に表示され、正しい設定としては「full」または「pdbonly」を指定する必要があります。

オプションを見直すことでエラーを解消できるため、実行環境が整っている場合は設定の確認をお勧めします。

エラー発生原因

Debugオプションの誤設定

誤ったオプション値「/debug:x」による問題

C#のコンパイル時に、/debug オプションに不正な値が渡されると、コンパイラ エラー CS1902 が発生します。

たとえば、次のサンプルコードは /debug:x という無効なオプション値が指定された場合の例です。

// サンプルコード: CS1902エラーを再現する例
// コンパイル時に「/debug:x」と指定する
class Sample
{
    public static void Main()
    {
        // シンプルなエントリポイント
        System.Console.WriteLine("Hello World");
    }
}
// コンパイル時のエラーメッセージ例
// error CS1902: /debug オプションの 'x' という値は無効です。full または pdbonly を指定してください。

このエラーは、/debug オプションに対して有効な値でないパラメータが渡されたことが原因です。

指定可能な値「full」と「pdbonly」の確認

正しい設定として、/debug オプションには full または pdbonly のいずれかを指定する必要があります。

full は、デバッグシンボルに加えて、より詳細なデバッグ情報を生成する設定です。

pdbonly はデバッガーがシンボル情報のみを利用する設定で、実行時のパフォーマンスに配慮した選択肢となります。

どちらの値も、プロジェクトのビルド要件や目的に合わせて選ぶことで、正しいデバッグ情報が生成され、CS1902エラーの回避につながります。

ビルド設定における設定ミス

プロジェクト設定ファイルの不整合

Visual Studioで開発を進める際、プロジェクトファイル(.csproj)内のデバッグ設定が不整合になっている場合も、同様のエラーが発生する原因となります。

プロジェクトファイル内の<DebugType>プロパティが無効な値(例:x やその他任意の値)になっていると、コマンドラインでコンパイルした場合と同様に、CS1902エラーが発生します。

プロジェクトファイル内の設定を見直し、<DebugType>タグが正しくfullまたはpdbonlyに設定されているかを確認することが重要です。

修正方法と対処策

正しいオプション設定の適用

Visual Studioでの設定変更手順

Visual Studioのプロジェクトプロパティを利用して、デバッグオプションを正しく設定する方法は以下の通りです。

  1. ソリューションエクスプローラーから対象のプロジェクトを右クリックし、「プロパティ」を選択します。
  2. 左側のメニューから「ビルド」または「デバッグ」タブを選択します。
  3. 「詳細設定」ボタンを押し、DebugTypeの項目が表示されたら、fullまたはpdbonlyを選択します。
  4. 設定を保存し、再度ビルドを実行してエラーが解消されたことを確認します。

コマンドラインでの正しい指定方法

コマンドラインからコンパイルする場合は、正しい値を指定してコンパイルを行う必要があります。

たとえば、csc を使用してコンパイルする場合は、以下のように指定します。

csc /debug:full Program.cs

上記のコマンドでは、/debug:full として正しいオプション値を指定しているため、CS1902エラーが発生することはありません。

シチュエーションに合わせて、fullまたはpdbonlyのいずれかを選択してください。

ビルド設定の再確認

プロジェクトファイルの調整方法

プロジェクト設定ファイル(.csproj)を直接編集することで、デバッグ設定を明確に制御できます。

以下は正しく設定された.csprojの一部例です。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <DebugType>full</DebugType> <!-- または pdbonly -->
  </PropertyGroup>
</Project>

この設定により、コンパイル時に正しいデバッグ情報が生成され、CS1902エラーを回避できます。

設定変更後は、必ずプロジェクトを再ビルドして修正が反映されているかを確認してください。

実例による検証

サンプルコードでのエラー再現

エラー発生時の出力例の確認

以下のサンプルコードは、/debug:x を指定してコンパイルすることにより、エラー CS1902 を再現する例です。

// CS1902ErrorSample.cs
// コンパイルコマンド: csc /debug:x CS1902ErrorSample.cs
class CS1902ErrorSample
{
    public static void Main()
    {
        // エラー発生を確認するためのシンプルな出力
        System.Console.WriteLine("デバッグオプションが不正なため、エラーが発生します。");
    }
}
// コンパイル時の想定されるエラーメッセージ
// error CS1902: /debug オプションの 'x' という値は無効です。full または pdbonly を指定してください。

修正前後の動作比較

エラー解消の再現手順と結果確認

以下のサンプルコードは、正しい/debug:fullオプションを使用してコンパイルした場合の例です。

エラーが発生せず、プログラムが正常に実行されることを確認できます。

// CorrectDebugOptionSample.cs
// コンパイルコマンド: csc /debug:full CorrectDebugOptionSample.cs
class CorrectDebugOptionSample
{
    public static void Main()
    {
        // 正常にコンパイルされるため、通常の実行結果が得られます
        System.Console.WriteLine("デバッグオプションが正しいため、正常に動作します。");
    }
}
// 実行時の出力結果
// デバッグオプションが正しいため、正常に動作します。

このように、正しい設定値を使用することで、コンパイラ エラー CS1902 を防ぎ、プログラムが正常に実行されることを確認できます。

まとめ

この記事では、C#のコンパイラエラーCS1902の原因と対処法について解説しました。

具体的には、無効なデバッグオプション(例: /debug:x)が原因で発生するエラーと、正しくはfullまたはpdbonlyを指定する必要がある点を説明しました。

Visual Studioやコマンドラインでの設定変更方法、プロジェクト設定ファイルの調整手順、実例を用いた検証により、エラー解消の手順が明確に理解できる内容となっています。

関連記事

Back to top button
目次へ