修改外部文件时重建T4模板

时间:2010-11-09 21:04:42

标签: visual-studio t4 design-time templating

我正在构建一组T4模板,用于从XML文件中收集数据。有没有办法在更改XML文件时强制Visual Studio重新生成模板?

目前,开发人员必须修改XML文件,然后重建每个模板以获取更改。我的目标是完全隐藏开发人员的T4模板,这样除了更新XML文件之外,他们不需要做任何其他操作。

其他信息:我们正在使用Visual Studio 2008 Visual Basic项目。

2 个答案:

答案 0 :(得分:1)

几个月前我一直在寻找类似的功能但是我发现所有这些都表明你不能在另一个文件发生变化时自动使模板输出无效。 (例如,没有办法声明模板“依赖”另一个文件,Makefile样式。)

我实际上只是编写了一个自定义的MSBuild任务,删除了所有T4输出文件,有效地强制所有模板在每次构建时重新运行。这可能对你的需求来说太过分了,特别是如果模板需要很长时间才能运行,但也许你可以将一些东西组合起来检查模板依赖性。

答案 1 :(得分:0)

如果您的目标是完全隐藏它们,我会制作一个名为T4Awesome的扩展程序,让您可以执行此操作。我的扩展程序将它们隐藏在单个文件夹中,然后通过自定义工具窗口将它们呈现给Visual Studio,而不是将模板作为解决方案的一部分并在解决方案资源管理器中可见。它支持参数提示,因此您可以删除xml文件的需要。