2009-07-23 9 views

Antwort

3

Ich schrieb eine sauber reverse-Engineering-Implementierung einer T4-Engine für die MonoDevelop-IDE. Es ist Open-Source, lizenziert unter der permissiven MIT/X11-Lizenz, so dass Sie die Engine in Ihre App einbetten oder neu verteilen können. Es gibt auch eine Implementierung des Befehlszeilentools TextTransform.exe und einiger APIs im Namespace Mono.TextTemplating, um das Hosten der Engine zu unterstützen.

Das einzige wirkliche fehlende Feature sind jetzt benutzerdefinierte Richtlinie Prozessoren - aber Patches hierfür ist willkommen :-)

Sie können den Code aus monodevelop/main/src/Add-In/TextTemplating in Mono SVN bekommen.

+0

1 - sehr cool. – BuddyJoe

2

Wie ich es verstehe, ist T4 ein Teil von Visual Studio und kann nicht ohne es verteilt werden. Zumindest müssen Sie die VS-Shell mit Ihrer Anwendung neu verteilen.

1

T4 ist im Moment leider an Visual Studio gebunden. Ich glaube, dass Clarius an einer CodeGen-Version ihrer Tools arbeitet, die die Automatisierung unterstützen können, aber sie haben noch kein Feature-Set finalisiert, und es wird ein kommerzielles Produkt sein. (Weitere Informationen: http://www.visualt4.com/features.html.) Bis dahin müssen Sie entweder klassische Codegen-Techniken (effektiv schreiben Sie Ihre eigenen T4), oder gehen Sie die Visual Studio Shell + SDK-Route, die Oleg erwähnt (mehr Infos: http://msdn.microsoft.com/en-us/vsx2008/products/bb933751.aspx).

Wenn Sie nicht die T4-Syntax verwenden müssen, kann das CodeSmith-Produkt das tun, was Sie benötigen. Es enthält eine API zum Schreiben von Vorlagen und Generieren von Code aus ihnen. Es ist ein angesehenes kommerzielles Produkt, aber ich habe es selbst nicht benutzt. Es gibt eine Online-Hilfe, und die API-Referenz ist hier: http://www.codesmithtools.com/help/Default.aspx##CodeSmith.chm/Using_the_CodeSmith_API.html.

Ich hoffe, das hilft. Viel Glück!

1

Für die Verarbeitung von T4-Vorlagen haben Sie Microsoft.VisualStudio.TextTemplating.dll zu verwenden, aber ich glaube nicht, dass Sie diese Versammlung

Grüße umverteilen könnte Muse VSExtensions