2008-12-11 12 views
7

Verwenden von T4 Ich möchte anhand der Untersuchung, welche Dateien in einem Verzeichnis relativ zur auszuführenden Vorlagendatei enthalten sind, Code generieren.Abrufen der Position einer .tt-Datei in T4

Gibt es einen Weg in C#, um den Pfad der aktuellen Vorlagendatei zu identifizieren?

Antwort

19

Sie müssen die hostspezifische Eigenschaft der Template-Direktive auf True setzen. Dadurch wird T4 eine spezielle Eigenschaft namens Host generieren, über die Sie auf die ResolvePath-Methode und die TemplateFile-Eigenschaft zugreifen können. Details finden Sie hier: http://www.olegsych.com/2008/02/t4-template-directive/

+0

Hallo, ich möchte Sie fragen, ob Ihr Code noch (im Jahr 2015) nur eine bestehende Lösung ist. Ich fand einfacher und in der Laufzeit funktionelles Stück Code [var NamespaceName = System.Runtime.Remoting.Messaging.CallContext.LogicalGetData ("NamespaceHint") als Zeichenfolge;] aber dieser Code funktioniert nicht beim Debuggen von T4-Vorlage (in VS getestet 2012). – user2126375

+0

Ich bin verwirrt, wie das ist einfacher als das Festlegen der hostspezifischen Flag ... Es gibt immer viele mögliche Lösungen, aber die Host-Eigenschaft aktivieren bietet Ihnen eine Menge Funktionen zur Vereinfachung der Verwaltung von Ausgabedateien. –