我想使用T4为部分类生成属性。我遇到了一个配置问题,我的.TT文件与我想要扩展的类文件在同一个项目中。因此,如果我必须将程序集包含在.TT文件中,它就会被锁定。我试图在预构建中执行命令行,但问题是VS总是希望用项目重新编译.TT文件。
我能想到的唯一解决方案是将.tt文件重命名为.t4然后使用带有TextTransform -out的预构建命令在项目目录中创建.cs文件。
有人能想到更清洁的方法吗?
答案 0 :(得分:3)
假设您的模板使用Reflection来读取需要扩展的分部类的元数据,导致锁定,您可以在使用CodeModel时解决锁定问题。此API由Visual Studio提供,允许您直接从源文件获取元数据,而无需编译分部类或加载已编译的DLL。以下是使用此方法的T4代码生成器的示例:http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration