jus*_*ara 6 tfs t4 templates visual-studio-2010 t4-toolbox
我正在尝试在我的项目中使用这样简单的方案:
Item.cs - >这包含具有简单实体属性的c#partial类.它还设置了属性"Custom Tool:T4ScriptFileGenerator",因此它将"分组"文件Item.tt附加到它.至极的道路上产生Item.generated.cs,分组以Item.tt.因此,它会在解决方案资源管理器中生成一个分组树:
Item.cs
?Item.tt
?Item.generated.cs
Run Code Online (Sandbox Code Playgroud)
您可以在下面看到它在.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没有遗漏任何内容.
问:在编辑主Item.cs时,有没有办法强制它检查DependentUpon文件的整个树?
以下是它在.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>
Run Code Online (Sandbox Code Playgroud)
它不是很优雅,但您始终可以通过点击解决方案资源管理器顶部的“转换所有模板”按钮,让 VS 转换解决方案中的所有模板。
请参阅我对原始问题的注释,至少在 VS2010 SP1 中,这似乎有效,给出了确切的示例项目文件片段。