Domanda

I file modello T4 sono automaticamente riconoscibili dall'IDE nei progetti C #, ma non ho idea di come possano essere integrati nei progetti C ++ (oltre all'utilizzo dei file make).

Qualche idea?

È stato utile?

Soluzione

I file modello T4 possono essere integrati nei progetti C ++, ma è un po 'più lavoro che con un progetto C # / VB. Crea un nuovo file di testo nel tuo progetto C ++ e dagli un'estensione .tt. Quindi scrivi il tuo modello normalmente. Un progetto C ++ ha quindi bisogno di ulteriore lavoro per farlo trasformare i modelli. Il modo rapido e sporco per farlo funzionare è stato quello di aggiungere un passaggio di creazione personalizzato e farlo chiamare & Quot; C: \ Programmi \ File comuni \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe & Quot; direttamente. Un altro modo che ho scoperto è stato quello di aggiungere un'attività personalizzata di MSBuild. Le istruzioni sono disponibili qui

Questa pagina contiene ulteriori informazioni e alcuni buoni collegamenti ad altre pagine sull'utilizzo del codice T4 generazione.

Altri suggerimenti

L'attività di MSBuild non funzionerà poiché si tratta di un file vcproj (C ++), pertanto viene utilizzato vcbuild. Il modo più semplice per compilare la tt è aggiungere un passaggio di compilazione personalizzato come di seguito ..

"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"

Ho trascorso diverse ore a studiare la soluzione Task di MSBuild sopra ed è abbastanza buona per il codice gestito ma non riesco a vedere alcun modo per usarlo per C ++ (barra che converte vcproj in csproj eek)

Per Visual Studio 2017 (e forse 2015?)

I comandi elencati nelle altre risposte sono in parte errati, poiché il file TextTransform.exe è stato spostato in una nuova directory: la devenv cartella principale, ad es .:

C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE

Il comando ora dovrebbe essere aggiornato al seguente:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"

dove xxx è il nome del file .tt file modello

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top