Я думаю, что, возможно, наконец нашел решение здесь. Я понял, когда просматривал, как XAML-файлы упоминаются в файле проекта для проектов на c #.
Давайте предположим файл A.tt
и B.tt
, который использует данные из C.xml
, и мы хотели бы восстановить код всякий раз, когда C.xml
изменяется.
Редактировать файл проекта. Ваши определения для A.tt
и B.tt
должны выглядеть примерно так:
<ItemGroup>
<None Include="A.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>A.cs</LastGenOutput>
<DependentUpon>C.xml</DependentUpon>
</None>
<None Include="B.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>B.cs</LastGenOutput>
<DependentUpon>C.xml</DependentUpon>
</None>
</ItemGroup>
Далее вам понадобится (конечно ...)
<ItemGroup>
<None Include="C.xml" />
</ItemGroup>
А также инструкция по автогенерации A.cs
и B.cs
:
<Compile Include="A.cs">
<DependentUpon>A.tt</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="B.cs">
<DependentUpon>B.tt</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
Я полагаю, что большая часть этого уже будет сделана для вас при создании файла шаблона, поэтому все, что вам действительно нужно добавить, это <DependentUpon>C.xml</DependentUpon>
части к ItemGroup
s для A.tt
и B.tt
.