Domanda

Ho template T4 (mycode.tt), che genera un file cs. Io di solito fate clic destro sul file e selezionare tt RunCustomTool che prende internamente un file XML e generare il codice per me. Ora voglio eseguire lo strumento personalizzato utilizzando un'applicazione C # Windows. Così onclick di un pulsante voglio eseguire lo strumento personalizzato. E 'possibile eseguire il CustomTool da C #.

Modifica:

Ho 2 file TT e uno di loro non ha un file cs codebehind. Ma un altro ha un file allegato con estensione cs e sto invocando il metodo TransformText () del secondo file dal primo file .tt. Così ho bisogno di invocare il primo file.So non posso utilizzare il metodo TransformText (). C'è un modo per chiamare in modo dinamico il file textTemplate?

È stato utile?

Soluzione

mi consiglia il percorso pre-elaborato come risposta superiormente da @jb_.

In alternativa, se avete bisogno dei vostri modelli per essere ancora modificabile senza un passo di compilazione per l'utilizzo con la vostra abitudine un'applicazione C #, e l'applicazione verrà distribuito solo su macchine accanto a Visual Studio, è possibile scrivere un host personalizzato.

http://msdn.microsoft.com/en-us/library/ bb126519.aspx

Altri suggerimenti

Si può facilmente realizzarlo, quando si utilizza VS2010. Se si aggiunge un nuovo file al progetto, scegliere un file di modello di testo pre-elaborato. È possibile modificare il modello altrettanto normale. Invece di generare direttamente l'uscita, il file genera il codice che viene generato normalmente. So che può sembrare confuso. Ma quello che si vede nel file di output è il codice generato dal toolkit testo di template per ottenere l'uscita (più o meno).

Questo è un piccolo esempio di un modello di testo pre-elaborato denominato "TestTemplate.tt" e come si usa nel codice:

Il TT-file:

<#@ template language="C#" #>
Some output.

Codice:

using System;
using System.Diagnostics;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            TestTemplate testTemplate = new TestTemplate();
            Debug.Print(testTemplate.TransformText());
        }
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top