Frage

Wenn ich meine c # Lösung die .tt Dateien bauen die CS-Datei gibt nicht erstellen. Aber wenn ich Recht vor, die .tt Dateien auf einmal in Lösung Explorer ein und klicken Sie auf „Ausführen Custom Tool“ die CS- erzeugt wird, so dass die Build-Tool Einstellung korrekt ist. Was kann ich tun, die Gesamtlösung zu bauen bekommen Sie das Spezialwerkzeug zu zwingen, auf den .tt Dateien ausgeführt werden?

War es hilfreich?

Lösung

Paul, können Sie auch den Code bei der Erstellung erzeugen mit TextTransform.exe oder Elton Stoneman ist MSBuild Aufgabe . Denken Sie daran, dass das Verhalten der integrierten in Richtlinien, wie Montage und umfassen unterscheidet, wenn T4 in Visual Studio gegen die läuft Befehlszeilen Host.

Andere Tipps

meine eigene Frage zu beantworten, sollen sie zur Entwurfszeit erzeugt werden gemäß dieser Diskussion:

https://web.archive.org/web/20081227142303/http://www.olegsych.com/2008/02/t4-template-directive/

In Visual Studio 2013, ich war in der Lage, die .tt Dateien, um ihre Ziele zu regenerieren, indem nur diese Zeilen in die CSPROJ Datei hinzufügen:

<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>

Doch dies funktioniert, müssen Sie die Modellierung installiert haben SDK für Visual Studio . Ich fand alle diese Informationen zusammen mit einer vollständigere Beschreibung der Optionen, die auf dieser Seite: Code-Generierung in einem Build-Prozess .

In Visual Studio 2017 (wahrscheinlich auch im nächsten Version), sollten Sie diese in Pre-Build-Ereignisse hinzu:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)YourTemplate.cs" "$(ProjectDir)YourTemplate.tt"

P. S. Die einzige Lösung, die für mich gearbeitet.

p.s.s. Ändern Pfad zu Ihrer Vorlage, wenn sie nicht im Stammprojektverzeichnis befinden wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top