По умолчанию в Visual Studio 2008 (и, как используется в большинстве онлайн-примеров), шаблон компилируется с 2.0 Framework, который не включает Linq. (См. ветку форума MSDN )
Чтобы решить проблему, необходимо выполнить три шага:
- В атрибуте языка вашего шаблона укажите «C # v3.5» или «VBv3.5» - этот шаг не требуется для VS2010, где всегда используется .Net 4.0.
- Добавить директиву сборки для System.Core.dll
- Импорт пространства имен System.Linq
Ваш шаблон теперь будет выглядеть примерно так:
<#@ template language="C#v3.5" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
Теперь вы можете использовать Linq и другие новые языковые функции в вашем шаблоне.