T4 テンプレートと T4 ツールボックスを使用してテキストを生成しています。
地域に基づいて部分的な更新を行いたいと思います。たとえば、最初のパスではすべてが生成されますが、ファイルが再度更新されると、$regions 内のコード ブロックのみが更新されます。$regions のそれぞれには、個別の名前があります。
これをどのように実装できるかについての提案を探しています。
1 つの方法は、生成されたコード領域以外のすべてを取り除くカスタム プリプロセッサを使用することです。もう 1 つの方法は、生成されたコード領域が見つかったときに T4 プロセッサのバッファをフラッシュし、領域の終わりが見つかったときに、T4 プロセッサが解析した領域に対応する生成されたファイルの領域内のテキストを置き換えることです。
仮定
- 生成されたコード領域には、解析する必要があるブロックが含まれていません
- 生成された各テキスト領域には個別の名前があります
単純な例
<person>
<firstname>
$region FirstName generated
<#="//T4 Template stuff here" #>
$endregion
</firstname>
<lastname>
$region LastName generated
<#="//T4 Template stuff here" #>
$endregion
</lastname>
</person>
注:この質問はこの質問と似ていますが、適切な回答が提供されていません。「できない」ではなく、実行可能な解決策を探しています。