题
我正在使用T4为项目生成一些屏幕和中间层代码,并希望使用Linq来简化我的一些模板代码。但是,当我尝试使用Linq时,模板会报告语法错误。
解决方案
默认情况下,Visual Studio 2008(以及大多数在线示例中使用的)模板使用2.0 Framework进行编译,该框架不包含Linq。 (参见 MSDN论坛帖子)
要解决这个问题,需要三个步骤:
- 在模板的语言属性中,指定“C#v3.5”或“VBv3.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和其他新语言功能。
不隶属于 StackOverflow