Frage

T4 Template-Dateien werden automatisch zu erkennen an dem IDE unter C # Projekten, aber ich habe keine Ahnung, wie sie in C ++ Projekte integriert werden (mit Ausnahme von Dateien machen verwenden).

Irgendwelche Ideen?

War es hilfreich?

Lösung

T4 Template-Dateien können in C ++ Projekte integriert werden, aber es ist ein bisschen mehr Arbeit als mit einem C # / VB-Projekt. Erstellen Sie eine neue Textdatei in Ihrem C ++ Projekt und gibt ihm eine .tt Erweiterung. Dann schreiben Sie Ihre Vorlage als normal. Ein C ++ Projekt muss dann die weitere Arbeit bekommen es die Vorlagen zu verwandeln. Die schnelle und schmutzige Art, wie ich es an die Arbeit bekam, war eine benutzerdefinierte Build-Schritt hinzufügen und haben es „C: \ Programme \ Gemeinsame Dateien \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe“ direkt aufrufen. Ein anderer Weg, ich fand, war eine benutzerdefinierte MSBuild Aufgabe hinzuzufügen. Eine Anleitung finden Sie hier zu finden

Diese enthält weitere Informationen und ein paar gute Links zu anderen Seiten T4 Code Generation.

Andere Tipps

MSBuild Aufgabe wird nicht funktionieren, da dies eine vcproj Datei (C ++) ist so vcbuild verwendet wird. Der einfachste Weg, um die tt zu erhalten kompiliert ist eine benutzerdefinierte Build-Schritt wie unten hinzuzufügen ..

"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"

Ich verbrachte mehrere Stunden, um die MSBuild Task-Lösung oben und es ist ziemlich gut für verwalteten Code zu untersuchen, aber ich kann nicht so sehen es für C ++ (bar die vcproj Umwandlung eek Csproj)

Für Visual Studio 2017 (und vielleicht 2015?)

Die Befehle in den anderen Antworten aufgelistet sind teilweise falsch, da die Datei TextTransform.exe wird in ein neues Verzeichnis verschoben worden: der devenv Stammordner, z.

C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE

Der Befehl sollte nun auf die folgende aktualisiert werden:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"

wo xxx ist der Dateiname der yout .tt Vorlagendatei

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