Estoy tratando de utilizar este esquema simple en mi proyecto:VS2010 T4 de auto pago y envío de archivos generados a partir de TFS no
Item.cs -> contiene esta clase parcial C# con propiedades de entidad simples. Ha establecido también la propiedad "Herramienta personalizada: T4ScriptFileGenerator" por lo que adjunta el archivo "agrupado" Item.tt a él. Que en su camino genera Item.generated.cs, agrupado en Item.tt. Por lo tanto, resulta en un árbol agrupados en explorador de soluciones:
Item.cs
˪Item.tt
˪Item.generated.cs
Usted puede ver a continuación cómo se ve en .csproj.
Todo el proyecto está conectado al espacio de trabajo de TFS 2010.
El problema es:
Cuando editar Item.cs, motor T4 recrea Item.generated.cs archivo, pero no comprueba a cabo desde TFS. Comprueba automáticamente solo los primeros dos niveles de archivos "agrupados" - Item.cs y su dependiente Item.tt. Se actualizó Item.generated.cs, pero se sobrescribió de forma simple, sin pago.
Si edito archivo Item.tt o simplemente presione "Ejecutar herramienta personalizada" en él - de nuevo dos archivos están desprotegidos: Item.tt y sus dependientes Item.generated.cs Esto es raro porque las fuerzas para que "ejecutemos manualmente la herramienta personalizada" en cada archivo * .tt después de editar los archivos de la clase de entidad para garantizar que no falte nada en TFS.
Q: ¿Hay alguna forma para que la fuerza de revisar todo el árbol de DependentUpon archivos cuando se edita principal Item.cs?
Aquí es cómo se ve en .csproj fuente de archivo:
<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>
No veo el problema con una pequeña reproducción de su solución en VS2010 SP1. No tengo 2010 sin SP1 a la mano, por lo que es posible que sea una corrección de sistema de proyecto en el paquete de servicio o una versión más nueva de T4Toolbox, pero está funcionando para mí. ¿Sigues viendo el problema? También vea mi solución como una respuesta simple a continuación. – GarethJ