Я пытаюсь использовать такую простую схему в своем проекте:
Item.cs -> он содержит частичный класс c # с простым свойства объекта. Он также установил свойство «Custom Tool: T4ScriptFileGenerator», поэтому он присоединяет к нему «сгруппированный» файл Item.tt . По пути генерируется Item.generated.cs , сгруппированный в Item.tt . В результате получается сгруппированное дерево в проводнике решений:
Item.cs
˪Item.tt
˪Item.generated.cs
Ниже вы можете увидеть, как это выглядит в файле .csproj.
Весь проект подключен к рабочему пространству TFS 2010.
Проблема:
Когда я редактировать Item.cs , механизм t4 воссоздает файл Item.generated.cs , но не извлекает его из tfs. Он автоматически проверяет только первые два уровня «сгруппированных» файлов - Item.cs и зависимый от него Item.tt . Item.generated.cs обновляется, но просто перезаписывается, без извлечения.
Если я редактирую файл Item.tt или просто нажимаю на нем «Запустить пользовательский инструмент» - снова будут извлечены два файла: Item.tt и зависимый от него Item.generated.cs Это странно, потому что заставляет нас вручную «запускать специальный инструмент» для каждого файла * .tt после редактирования файлов классов сущностей, чтобы убедиться, что в TFS ничего не пропало.
Q: Есть ли способ заставить его проверять все дерево Файлы DependentUpon при редактировании основного Item.cs?
Вот как это выглядит в исходном файле .csproj:
<Compile Include="Entities\Item.cs">
<Generator>T4ScriptFileGenerator</Generator>
<LastGenOutput>Item.tt</LastGenOutput>
</Compile>
<None Include="Entities\Item.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Item.cs</DependentUpon>
<LastGenOutput>Item.codegen.cs</LastGenOutput>
</None>
<Compile Include="Entities\Item.codegen.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Item.tt</DependentUpon>
</Compile>