質問
T4を使用してプロジェクトのいくつかの画面と中間層コードを生成していますが、Linqを使用してテンプレートコードの一部を簡素化したいと考えています。ただし、Linqを使用しようとすると、テンプレートは構文エラーを報告します。
解決
Visual Studio 2008のデフォルトでは(およびほとんどのオンライン例で使用されているように)、テンプレートはLinqを含まない2.0フレームワークでコンパイルされます。 ( MSDNフォーラムスレッド)
問題を解決するには、3つの手順が必要です。
- テンプレートの言語属性に、「C#v3.5」を指定します;または「VBv3.5」 -.NET 4.0が常に使用されるVS2010では、この手順は不要です。
- System.Core.dllのアセンブリディレクティブを追加します
- System.Linq名前空間をインポートします
テンプレートは次のようになります。
<#@ template language="C#v3.5" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
テンプレートでLinqおよびその他の新しい言語機能を使用できるようになりました。
所属していません StackOverflow