GitHub.com/Mono/T4 sayesinde , şu anda bunu hem .csproj
dosyanıza ekleyerek hem .NET Core hem de Visual Studio derlemeleri için yapabilirsiniz :
<ItemGroup>
<DotNetCliToolReference Include="dotnet-t4-project-tool" Version="2.0.5" />
<TextTemplate Include="**\*.tt" />
</ItemGroup>
<Target Name="TextTemplateTransform" BeforeTargets="BeforeBuild">
<ItemGroup>
<Compile Remove="**\*.cs" />
</ItemGroup>
<Exec WorkingDirectory="$(ProjectDir)" Command="dotnet t4 %(TextTemplate.Identity)" />
<ItemGroup>
<Compile Include="**\*.cs" />
</ItemGroup>
</Target>
Farklı programlama dilleri Şablonlarınızı dönüşümü Eğer böyle bir şey eklemek gerekir <Compile Remove="**\*.vb" />
ve <Compile Include="**\*.vb" />
henüz dosyalarını oluşturmuş olmasa bile derlenmiş bu dosyaları almak için.
Remove
ve Include
hile yalnızca ilk kez oluşturma için gereklidir veya XML'yi şu şekilde kısaltabilirsiniz:
<ItemGroup>
<DotNetCliToolReference Include="dotnet-t4-project-tool" Version="2.0.5" />
<TextTemplate Include="**\*.tt" />
</ItemGroup>
<Target Name="TextTemplateTransform" BeforeTargets="BeforeBuild">
<Exec WorkingDirectory="$(ProjectDir)" Command="dotnet t4 %(TextTemplate.Identity)" />
</Target>
ve sadece iki kez inşa çalıştırın (ilk kez). Depoya zaten taahhüt edilmiş dosyalar oluşturduysanız, her iki örnekle de yeniden oluşturmalarda herhangi bir sorun olmayacaktır.
Visual Studio'da şöyle bir şey görmek isteyebilirsiniz:
bunun yerine:
Proje dosyanıza böyle bir şey ekleyin:
<ItemGroup>
<Compile Update="UInt16Class.cs">
<DependentUpon>UInt16Class.tt</DependentUpon>
</Compile>
<Compile Update="UInt32Class.cs">
<DependentUpon>UInt32Class.tt</DependentUpon>
</Compile>
<Compile Update="UInt64Class.cs">
<DependentUpon>UInt64Class.tt</DependentUpon>
</Compile>
<Compile Update="UInt8Class.cs">
<DependentUpon>UInt8Class.tt</DependentUpon>
</Compile>
</ItemGroup>
Burada tam örnek: GitHub.com/Konard/T4GenericsExample (tek bir şablondan birden fazla dosya oluşturulmasını içerir).