Я пытаюсь использовать такую простую схему в моем проекте:
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 ничего не пропущено.
В: Есть ли способ заставить его проверять все дерево 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>