GitHub.com/Mono/T4 के लिए धन्यवाद , फिलहाल आप इसे .NET कोर और विजुअल स्टूडियो दोनों के लिए कर सकते हैं, इसे आपकी .csproj
फाइल में जोड़कर :
<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>
यदि आप अपने टेम्प्लेट को अलग-अलग प्रोग्रामिंग लैंग्वेज में बदलते हैं, तो आपको कुछ ऐसी चीज़ों को जोड़ना चाहिए <Compile Remove="**\*.vb" />
और <Compile Include="**\*.vb" />
इन फ़ाइलों को संकलित करने के लिए, भले ही आपके पास अभी तक फाइलें न हों।
Remove
और Include
ट्रिक केवल पहली बार पीढ़ी के लिए आवश्यक है, या आप XML को इस तरह छोटा कर सकते हैं:
<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>
और सिर्फ दो बार (पहली बार) निर्माण करें। यदि आपने पहले से ही रिपॉजिटरी के लिए प्रतिबद्ध फ़ाइलों को उत्पन्न किया है, तो दोनों उदाहरणों के साथ पुनर्वित्त पर कोई समस्या नहीं होगी।
विजुअल स्टूडियो में आप कुछ इस तरह से देखना चाहते हैं:
इसके अलावा:
तो अपने प्रोजेक्ट फ़ाइल में कुछ इस तरह जोड़ें:
<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>
यहां पूरा उदाहरण: GitHub.com/Konard/T4GenericsExample (एकल टेम्पलेट से कई फ़ाइलों की पीढ़ी शामिल है)।