Wie eine Abhängigkeit zu einer beliebigen Datei zu einer T4-Vorlage hinzufügen?

StackOverflow https://stackoverflow.com/questions/280748

  •  07-07-2019
  •  | 
  •  

Frage

Ich habe eine T4-Vorlage, die Klassen aus einer XML-Datei erzeugt.

Wie kann ich eine Abhängigkeit zwischen der XML-Datei und der Vorlagendatei hinzufügen, so dass, wenn die XML-Datei der Vorlage automatisch erneut ausführen, geändert wird, ohne „Run Anpassungs-Tool“ aus dem Kontextmenü wählen?

War es hilfreich?

Lösung

Ich glaube nicht, T4 Transformation automatische Vorlage basiert auf einer externen Abhängigkeit unterstützt. Ich stimme mit Marc - wenn Sie nur eine externe Datei haben, könnten Sie eine benutzerdefinierte „Anpassungs-Tool“ für Ihre XML-Datei erstellen oder verwenden Sie einfach ttxgen . Aber ich glaube nicht, das Konzept für ein Szenario skaliert wo T4-Vorlage auf mehr als eine Datei abhängt. Möglicherweise müssen Sie ein Visual Studio-Paket erstellen, das zu handhaben.

Andere Tipps

Wie lange dauert das Werkzeug auszuführen? Eine faule Option könnte sein, einfach die csproj zu bearbeiten, so dass es immer läuft das Werkzeug während des Build (vermutlich über <Exec ... /> oder eine Datei benutzerdefinierte targets.) - natürlich, das hängt davon ab, es schnell auszuführen sein

Eine andere Möglichkeit wäre eine Shim zu schreiben, die als „Custom Tool“ in VS arbeitet, und ruft einfach die vorhandenen exe (oder was auch immer) mit den richtigen args. Nicht trivial, aber machbar ( sehen hier ) - Ich glaube, dies spielt dann angeblich ziemlich gut mit Änderungserkennung. Es ist eigentlich auf meiner Liste der Dinge für ein aktuelles Projekt zu tun, also werde ich es früh genug erfahren ...

Sie können mit AutoTT Visual Studio-Erweiterung.

Diese Erweiterung ermöglicht es Trigger zu konfigurieren, dass eine T4-Vorlage ausgeführt wird.

Eine der möglichen Auslöser ist eine Datei ändern. In der Beispielkonfigurationsdatei in AutoTT Seite entspricht der reguläre Ausdruck für die Trigger alle Dateien in den angegebenen Ordnern (Controller, Inhalt), aber Sie können es ändern, so dass es mit einer bestimmten Datei wird nur ausgeführt.

Chirpy ist eine weitere Option, dies zu tun. Und auch T4 Regenerator , die es auf eine andere Art und Weise tut.

Haben Sie versucht, mit <# @ xsd

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