Ich habe eine Lösung, die ein paar Projekte enthält. Ich möchte einige T4-Vorlagen in einem meiner Testprojekte erstellen, um Tests basierend auf Code in einem anderen Projekt zu generieren. Das Testprojekt verfügt über eine Projektreferenz für das andere Projekt. Das Problem, das ich habe, ist, dass ich nicht weiß, wie man einen Dateipfad zu der edmx-Datei bekommt, von der ich Code erzeugen muss.Get referenzierten Projektpfad in T4-Vorlage?
Beispiel (so tun, dies ist eine ASCII-basierte Lösung Explorer):
MySolution.sln
-> MyTests.csproj (C:\a\b\c\)
----> GeneratedTests.tt (C:\a\b\c\GeneratedTests.tt)
-> MyDAL.csproj (C:\x\y\z\)
----> MyModel.edmx (C:\x\y\z\MyModel.edmx)
Wie würde mein GeneratedTests.tt der Lage sein, einen Dateipfad zu bekommen für MyModel.edmx es seinen Projektverweis verwendet?
Verweis auf die DLL nach Pfad verursacht das Problem, das ich versuche zu vermeiden. Eine Entwicklungsabteilung kann das Projekt an einem Ort haben, während ein anderer es an einem anderen Ort hat. Wenn ich den Standort annehmen könnte, müsste ich das Template nicht bestimmen lassen - ich könnte es einfach fest codieren oder es mit Build-Skripten injizieren. Die Arbeit am Modell ist kein Problem - mein Skript läuft perfekt, wenn ich den Pfad fest codiere. Ich brauche nur eine Möglichkeit, diesen Pfad dynamisch zu bestimmen. Die Verwendung von Host.Resolve ist in Ordnung, wenn ich den Pfad der Vorlage brauche - ich muss nur den Pfad für die Quelle der MyDAL-Assembly herausfinden. – Jaxidian
Host.ResolvePath (".") Funktioniert. :) – Jaxidian