我正在使用 T4 模板和 T4 工具箱来生成文本。
我想根据地区进行部分更新。例如,在第一次通过时会生成所有内容,但如果再次更新文件,则只会更新 $regions 中的代码块。每个 $regions 都有一个不同的名称。
我正在寻找有关如何实施的建议。
一种方法是使用定制的预处理器,去除除生成的代码区域之外的所有内容。另一种可能是在找到生成的代码区域时清除 T4 处理器的缓冲区,然后在找到该区域的末尾时,替换生成文件的区域中与 T4 处理器已解析的区域相对应的文本。
假设
- 生成的代码区域不会包含应该被解析的块
- 每个生成的文本区域都有一个不同的名称
简单的例子
<person>
<firstname>
$region FirstName generated
<#="//T4 Template stuff here" #>
$endregion
</firstname>
<lastname>
$region LastName generated
<#="//T4 Template stuff here" #>
$endregion
</lastname>
</person>
注意:我意识到这个问题与这个问题相似,但从未提供过合适的答案。我正在寻找可行的解决方案,而不是“无法完成”。