【问题标题】:Rebuild T4 template when external file is modified修改外部文件时重建 T4 模板
【发布时间】:2010-11-09 21:04:42
【问题描述】:
我正在构建一组从 XML 文件收集数据的 T4 模板。有没有办法强制 Visual Studio 在 XML 文件更改时重新生成模板?
目前,开发人员必须修改 XML 文件,然后重新构建每个模板以获取更改。我的目标是对开发人员完全隐藏 T4 模板,这样他们就无需执行任何操作,只需更新 XML 文件。
其他信息:我们正在使用 Visual Studio 2008 Visual Basic 项目。
【问题讨论】:
标签:
visual-studio
t4
design-time
templating
【解决方案1】:
几个月前我一直在寻找类似的功能,但我发现的所有结果都表明,当另一个文件发生更改时,您无法自动使模板输出无效。 (例如,无法声明模板“依赖于”另一个文件,Makefile 样式。)
我实际上只是编写了一个自定义 MSBuild 任务,删除所有 T4 输出文件,有效地强制所有模板在每次构建时重新运行。这对您的需求来说可能是多余的,特别是如果模板需要很长时间才能运行,但也许您可以组合一些东西来检查模板依赖关系。
【解决方案2】:
如果您的目标是完全隐藏它们,我制作了一个名为 T4Awesome 的扩展程序,让您可以做到这一点。我的扩展不是将您的模板作为解决方案的一部分并在解决方案资源管理器中可见,而是将它们隐藏在一个文件夹中,然后通过自定义工具窗口将它们呈现给 Visual Studio。它支持参数提示,因此您可以删除对 xml 文件的需要。