如何将任意文件的依赖项添加到T4模板?

时间:2008-11-11 12:22:18

标签: c# .net t4

我有一个T4模板,可以从xml文件生成类。

如何在xml文件和模板文件之间添加依赖关系,以便在修改xml文件时自动重新运行模板,而无需从上下文菜单中选择“运行自定义工具”?

4 个答案:

答案 0 :(得分:4)

我不相信T4支持基于外部依赖的自动模板转换。我同意Marc - 如果您只有一个外部文件,则可以为XML文件创建自定义“自定义工具”,或者只使用ttxgen。但是,我不认为这种方法可以扩展到t4模板依赖于多个文件的情况。您可能需要创建一个Visual Studio包来处理它。

答案 1 :(得分:3)

该工具需要多长时间才能执行?一个懒惰的选项可能是简单地编辑csproj,使其始终在构建期间运行该工具(可能是通过<Exec ... />或自定义targets文件) - 当然,这取决于它可以快速执行。

另一种方法是编写一个在VS中作为“自定义工具”的填充程序,并简单地使用正确的args调用现有的exe(或其他)。不是微不足道的,但是可行的(see here) - 我认为这应该与变化检测相当不错。它实际上是我当前项目要做的事情列表,所以我很快就会发现......

答案 2 :(得分:1)

您可以使用AutoTT Visual Studio扩展程序。

此扩展允许配置将运行T4模板的触发器。

可能的触发器之一是文件更改。在AutoTT页面的示例配置文件中,触发器的正则表达式匹配指定文件夹(控制器,内容)中的所有文件,但您可以更改它以使其仅与特定文件一起运行。

Chirpy是另一种选择。还有T4 Regenerator,它以不同的方式完成它。

答案 3 :(得分:-1)

您是否尝试过使用<#@ xsd