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

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

有人能想出一种更干净的方法来做到这一点吗?

有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top