2010-11-09 13 views
6

Sto costruendo un set di modelli T4 che raccolgono i dati da un file XML. Esiste un modo per forzare Visual Studio a rigenerare i modelli quando viene modificato il file XML?Ricostruisci il modello T4 quando il file esterno viene modificato

Attualmente gli sviluppatori devono modificare il file XML e quindi ricostruire ciascun modello per ottenere le modifiche. Il mio obiettivo è quello di nascondere completamente i modelli T4 dallo sviluppatore in modo che non debbano fare alcuna azione oltre all'aggiornamento del file XML.

Altre informazioni: stiamo utilizzando i progetti Visual Studio 2008 Visual Basic.

+0

possibile duplicato di [Ottieni Visual Studio per l'esecuzione di un modello T4 su ogni build] (http://stackoverflow.com/questions/1646580/get-visual-studio-to-run-a-t4-template-on- ogni build) – GSerg

+0

Esiste un'estensione VS per questo [AutoRunCustomTool] (https://visualstudiogallery.msdn.microsoft.com/ecb123bf-44bb-4ae3-91ee-a08fc1b9770e). –

risposta

1

Stavo cercando una funzionalità simile qualche mese fa ma tutto ciò che ho trovato indicava che non è possibile invalidare automaticamente l'output del template quando viene cambiato un altro file. (Es. Non esiste un modo per dichiarare che un modello "dipende" su un altro file, stile Makefile.)

Mi sono limitato a scrivere solo un'attività MSBuild personalizzata che cancella tutti i file di output T4, forzando in modo efficace tutti i modelli a essere ri-eseguito su ogni build. Questo potrebbe essere eccessivo per le tue esigenze, specialmente se i template impiegano molto tempo per essere eseguiti, ma forse puoi fare un hacking insieme per controllare le dipendenze dei template.

+1

Dove sono i file di output T4? –

0

Se il tuo obiettivo è nasconderli del tutto, creo un'estensione chiamata T4Awesome che ti consente di farlo. Invece dei modelli che fanno parte della soluzione e visibili in Solution Explorer, la mia estensione li nasconde in una singola cartella, quindi li presenta a Visual Studio tramite finestre degli strumenti personalizzate. Supporta la richiesta di parametri in modo che tu possa essere in grado di rimuovere la necessità del tuo file xml.