#pragma checksum (C# リファレンス)

更新 : 2007 年 11 月

ASP.NET ページのデバッグに使用するソース ファイルのチェックサムを生成します。

#pragma checksum "filename" "{guid}" "checksum bytes"

パラメータ

  • "filename"
    変更または更新を監視する必要があるファイルの名前。

  • "{guid}"
    ファイルのグローバル一意識別子 (GUID: Globally Unique Identifier)。

  • "checksum_bytes"
    チェックサムのバイトを表す 16 進形式の文字列。偶数の 16 進数であることが必要です。奇数の数値を指定すると、コンパイル時に警告が出力され、ディレクティブが無視されます。

解説

Visual Studio デバッガは、常に正しいソースを検出することを目的としてチェックサムを使用します。コンパイラはソース ファイルのチェックサムを計算し、プログラム データベース (PDB) ファイルに出力します。デバッガは、その PDB を使用して、ソース ファイルについて算出されたチェックサムとの比較を行います。

この方法は、ASP.NET プロジェクトには使用できません。算出されたチェックサムは、.aspx ファイルではなく、生成されたソース ファイルを対象としているためです。この問題を解決するために、#pragma checksum によって ASP.NET ページのチェックサムがサポートされています。

Visual C# で ASP.NET プロジェクトを作成すると、生成されるソース ファイルに .aspx ファイルのチェックサムが含められます。ソースは、この .aspx ファイルから生成されます。次に、コンパイラがこの情報を PDB ファイルに書き込みます。

ファイルに #pragma checksum ディレクティブが見つからない場合、コンパイラはチェックサムを計算し、その値を PDB ファイルに書き込みます。

使用例

class TestClass
{
    static int Main()
    {
        #pragma checksum "file.cs" "{3673e4ca-6098-4ec1-890f-8fceb2a794a2}" "{012345678AB}" // New checksum
    }
}

参照

概念

C# プログラミング ガイド

参照

C# プリプロセッサ ディレクティブ

その他の技術情報

C# リファレンス