8

我有一个从 xml 文件生成类的 T4 模板。

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

4

4 回答 4

4

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

于 2008-12-29T19:28:35.963 回答
3

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

另一种方法是编写一个在 VS 中用作“自定义工具”的 shim,并使用正确的 args 简单地调用现有的 exe(或其他)。不是微不足道的,而是可行的(见这里)——我相信这应该与变化检测相当好。它实际上在我为当前项目做的事情清单上,所以我很快就会发现......

于 2008-11-11T13:09:59.130 回答
1

您可以使用AutoTT Visual Studio 扩展。

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

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

Chirpy是执行此操作的另一种选择。还有T4 Regenerator,它以不同的方式进行。

于 2013-06-05T12:19:02.240 回答
-1

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

于 2008-11-11T15:38:02.917 回答