69

我正在使用 T4 为项目生成一些屏幕和中间层代码,并希望使用 Linq 来简化我的一些模板代码。但是,当我尝试使用 Linq 时,模板会报告语法错误。

4

1 回答 1

100

默认情况下,在 Visual Studio 2008 中(以及在大多数在线示例中使用的)模板是使用不包括 Linq 的 2.0 框架编译的。(参见MSDN 论坛主题

要解决这个问题,需要三个步骤:

  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 回答