Visual Studio Web アプリケーション プロジェクトでは、ファイル プロパティ ウィンドウで設定されたカスタム ツール情報が、ファイルごとに CSPROJ プロジェクト ファイルに保存されます。
Visual Studio Web サイト プロジェクトには、プロジェクト ファイルはなく、いくつかのグローバル構成を持つ SLN ファイルのみがあります。私が知る限り、ここにはファイル固有の情報は保存されていません。これが Web サイト プロジェクト タイプの要点です。
通常の T4 テキスト テンプレートと前処理された (ランタイム) T4 テキスト テンプレートの両方を Web サイト プロジェクトに追加することはできますが、ファイル プロパティ ウィンドウからカスタム ツールを構成することはできません。それにもかかわらず、Visual Studio は、どのテンプレートがどのタイプであるかを認識し、記憶しています。つまり、通常のテンプレートには 'TextTemplatingFileGenerator' を使用し、前処理されたテンプレートには 'TextTemplatingFilePreprocessor' を使用し、生成された出力は問題ありません。
これは、Visual Studio 2010 および 2012 の新しい Web サイト プロジェクトでは機能しますが、Web アプリケーションから Web サイトに手動で変換された手元の Web サイト プロジェクトでは機能しません。このプロジェクトで前処理されたすべての T4 テキスト テンプレートは、'TextTemplatingFileGenerator' で自動的に処理されており、これを変更する方法はないようです。もちろん、テンプレートがクラッシュし、クラスが欠落しているため、後でプロジェクトをビルドできません。
では、Visual Studio は Web サイト プロジェクトの T4 テンプレートのカスタム ツール情報をどのように管理するのでしょうか?
[新しい項目の追加] ダイアログにプリコンパイル済みのテキスト テンプレート オプションがない場合、Web サイト プロジェクトではカスタム ツールがまったくサポートされていないと言えます。ただし、テキスト テンプレートは存在し、状況によっては正常に機能します。