2008-11-11 8 views

Odpowiedz

4

Nie wierzę, że T4 obsługuje automatyczną transformację szablonów na podstawie zależności zewnętrznych. Zgadzam się z Marcem - jeśli masz tylko jeden plik zewnętrzny, możesz utworzyć niestandardowe "niestandardowe narzędzie" do pliku XML lub po prostu użyć ttxgen. Jednak nie sądzę, że to podejście skaluje się do scenariusza, w którym szablon t4 zależy od więcej niż jednego pliku. Być może trzeba będzie utworzyć pakiet Visual Studio, aby to obsłużyć.

+0

Czy istnieje sposób użycia ttxgen z VS2010? –

3

Ile czasu zajmuje wykonanie narzędzia? Jedną z leniwych opcji może być po prostu edycja csproj tak, aby zawsze wykonywała narzędzie podczas kompilacji (prawdopodobnie poprzez <Exec ... /> lub niestandardowy plik targets) - oczywiście zależy to od tego, czy jest on szybki do wykonania.

Innym sposobem byłoby napisanie podkładki, która działa jako "narzędzie niestandardowe" w VS, i po prostu wywołuje istniejący exe (lub cokolwiek innego) z odpowiednimi argumentami. Nie trywialne, ale wykonalne (see here) - Wierzę, że wtedy podobno gra dość ładnie z wykrywaniem zmian. To jest rzeczywiście na mojej liście rzeczy do zrobienia dla bieżącego projektu, więc wkrótce się dowiem ...

1

Można użyć rozszerzenia programu Visual Studio Extension AutoTT.

To rozszerzenie umożliwia skonfigurowanie wyzwalaczy, które będą uruchamiały szablon T4.

Jednym z możliwych czynników uruchamiających jest zmiana pliku. W przykładowym pliku konfiguracyjnym na stronie AutoTT wyrażenie regularne dla wyzwalaczy pasuje do wszystkich plików w określonych folderach (Kontrolery, Zawartość), ale można je zmienić tak, aby działały tylko z określonym plikiem.

Chirpy to kolejna opcja. A także T4 Regenerator, który robi to w inny sposób.