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