PetaPoco的T4模板报错的问题


用NuGet安装好PetaPoco后,利用自带的T4模板生成POCO和dbcontext,配置好T4模板后运行报如下错误。

错误 正在编译转换: 类、结构或接口成员声明中的标记“this”无效
错误 正在编译转换: 方法必须具有返回类型
错误 正在编译转换: “GeneratedTextTransformation.Write()”必须声明主体,因为它未标记为 abstract、extern 或 partial
错误 正在编译转换: 应输入标识符 

解决办法:打开PetaPoco.Core.ttinclude文件,选择菜单【文件】=>【高级保存选项】,对话框中尾行选择Windows(CR LR),保存后再运行就没问题了。

当然最好另外两个文件Database.tt,PetaPoco.Generator.ttinclude也同样处理一下,因为这是windows下的标准格式。作者可能是在mac下工作的,所以导致我们获取下来的尾行不是Windows标准而导致了运行出错。