69

T4 を使用してプロジェクトの画面と中間層コードを生成していますが、Linq を使用してテンプレート コードの一部を簡素化したいと考えています。ただし、Linq を使用しようとすると、テンプレートで構文エラーが報告されます。

4

1 に答える 1

100

Visual Studio 2008 の既定では (およびほとんどのオンライン例で使用されているように)、テンプレートは 2.0 Framework でコンパイルされ、Linq は含まれません。( MSDN フォーラム スレッドを参照)

この問題を解決するには、次の 3 つの手順が必要です。

  1. テンプレートの言語属性で、「C#v3.5」または「VBv3.5」を指定します。.Net 4.0 が常に使用される VS2010 では、この手順は必要ありません。
  2. System.Core.dll のアセンブリ ディレクティブを追加します。
  3. System.Linq 名前空間をインポートする

テンプレートは次のようになります。

<#@ template language="C#v3.5" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>

テンプレートで Linq やその他の新しい言語機能を使用できるようになりました。

于 2008-10-29T14:29:21.100 に答える