Comment obtenir des fichiers t4 à compiler dans visual studio?
quand je construis mon c # solution le .les fichiers tt ne créeront pas le .sorties des fichiers cs. Mais si je clique sur le bouton droit de la souris .TT file one at a time dans solution explorer et sélectionnez "Run Custom Tool" the .cs est généré, donc le réglage de l'outil de compilation est correct. Que dois-je faire pour obtenir la construction de la solution globale pour forcer l'outil personnalisé à fonctionner sur le .des fichiers tt?
3 réponses
Paul, vous pouvez également générer du code à la construction avec TextTransform.exe ou Elton Stoneman la tâche MSBuild . Il suffit de garder à l'esprit que le comportement des directives intégrées, comme assembly et include est différent lorsque T4 fonctionne dans Visual Studio par rapport à l'hôte de ligne de commande.
répondant à ma propre question, ils sont censés être générés au moment de la conception selon cette discussion:
https://web.archive.org/web/20081227142303/http://www.olegsych.com/2008/02/t4-template-directive /
in Visual Studio 2013, I was able to get the .les fichiers tt pour régénérer leurs cibles en ajoutant simplement ces lignes à la .dossier csproj:
<PropertyGroup>
<!-- Get the Visual Studio version – defaults to 10: -->
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<!-- Keep the next element all on one line: -->
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<!-- To enable build tasks on your development computer, install Modeling SDK for Visual Studio. https://www.microsoft.com/en-us/download/details.aspx?id=40754 -->
<Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />
<!-- Run the Transform task at the start of every build -->
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
</PropertyGroup>
<!-- Overwrite files that are read-only, for example because they are not checked out -->
<PropertyGroup>
<OverwriteReadOnlyOutputFiles>true</OverwriteReadOnlyOutputFiles>
</PropertyGroup>
<!-- Transform every template every time -->
<PropertyGroup>
<TransformOutOfDateOnly>false</TransformOutOfDateOnly>
</PropertyGroup>
Cependant, pour que cela fonctionne, vous aurez besoin d'avoir installé le SDK de modélisation pour Visual Studio . J'ai trouvé toutes ces informations, avec une description plus complète des options disponibles, sur cette page: la Génération de Code dans un Processus de construction .