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?

14
demandé sur P a u l 2009-01-02 01:15:11

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.

9
répondu Oleg Sych 2009-01-02 01:18:28

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 /

5
répondu P a u l 2017-09-25 16:09:09

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 .

0
répondu Gyromite 2015-10-08 22:50:23