VS2010 T4 автоматическая проверка сгенерированных файлов из TFS не работает

Я пытаюсь использовать такую ​​простую схему в своем проекте:

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>
6
задан GarethJ 21 December 2011 в 03:02
поделиться