题
我有一个T4模板,可以从xml文件生成类。
如何在xml文件和模板文件之间添加依赖关系,以便在修改xml文件时自动重新运行模板而不选择<!>“运行自定义工具<!>”;从上下文菜单?
解决方案
我不相信T4支持基于外部依赖的自动模板转换。我同意Marc - 如果你只有一个外部文件,你可以创建一个自定义<!>“自定义工具<!>”;对于您的XML文件或只是使用 ttxgen 。但是,我不认为这种方法可以扩展到t4模板依赖于多个文件的情况。您可能需要创建一个Visual Studio包来处理它。
其他提示
该工具需要多长时间才能执行?一个懒惰的选项可能是简单地编辑csproj,使其始终在构建期间运行该工具(可能是通过 <Exec ... />
或自定义targets
文件) - 当然,这取决于它是否可以快速执行。
另一种方法是编写一个用作<!>“自定义工具<!>”的填充程序。在VS中,只需使用正确的args调用现有的exe(或其他)。不是微不足道的,但可行的(见这里) - 我相信据说这应该与变化检测相当不错。它实际上是我当前项目要做的事情列表,所以我很快就会发现......
您可以使用 AutoTT Visual Studio Extension。
此扩展允许配置将运行T4模板的触发器。
可能的触发器之一是文件更改。在AutoTT页面的示例配置文件中,触发器的正则表达式匹配指定文件夹(控制器,内容)中的所有文件,但您可以更改它以使其仅与特定文件一起运行。
Chirpy 是另一种选择。并且还以不同的方式 T4 Regenerator 。
您是否尝试过使用 <!> lt;#@ xsd 一>
不隶属于 StackOverflow