1

我想使用 T4 为部分类生成属性。我遇到了一个配置问题,我的 .TT 文件与我要扩展的类文件在同一个项目中。因此,如果我必须将程序集包含在 .TT 文件中,它就会被锁定。我尝试在预构建中执行命令行,但问题是 VS 总是想用项目重新编译 .TT 文件。

我能想到的唯一解决方案是将 .tt 文件重命名为 .t4 ,然后使用带有 TextTransform -out 的预构建命令在项目目录中创建 .cs 文件。

谁能想到一种更清洁的方法来做到这一点?

4

1 回答 1

3

假设锁定是由您的模板使用反射读取您需要扩展的部分类的元数据引起的,如果您使用 CodeModel,您可以解决锁定问题。此 API 由 Visual Studio 提供,允许您直接从源文件中获取元数据,而无需编译分部类或加载已编译的 DLL。以下是使用此方法的 T4 代码生成器示例:http ://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration

于 2008-12-29T15:09:10.137 回答