2009-07-23 2 views

ответ

3

Я написал полностью реконструированную реализацию движка T4 для среды разработки MonoDevelop. Это с открытым исходным кодом, лицензируется под разрешительной лицензией MIT/X11, поэтому вы можете вставлять движок в свое приложение или перераспределять его. Существует также реализация средства командной строки TextTransform.exe и некоторые API в пространстве имен Mono.TextTemplating, чтобы помочь в размещении движка.

Единственная недостающая возможность прямо сейчас пользовательские процессоры директивные - но патчи для этого являются желанными :-)

Вы можете получить код от MonoDevelop/основной/SRC/Надстройки/TextTemplating в Mono СВН.

+0

+1 - очень здорово. – BuddyJoe

2

Как я понимаю, T4 является частью визуальной студии и не может быть перераспределен без него. Как минимум, вам нужно будет перераспределить VS-оболочку с вашим приложением.

1

T4, к сожалению, привязана к Visual Studio на данный момент. Я считаю, что Clarius работает над версией CodeGen своих инструментов, которые могут поддерживать автоматизацию, но пока еще не финализировали набор функций, плюс это будет коммерческий продукт. (Дополнительная информация: http://www.visualt4.com/features.html.) До тех пор вам придется либо использовать классические методы codegen (эффективно писать свой собственный T4), либо спуститься по пути Visual Studio Shell + SDK, о котором упоминает Олег (дополнительная информация: http://msdn.microsoft.com/en-us/vsx2008/products/bb933751.aspx).

Если вам не нужно использовать синтаксис T4, то продукт CodeSmith может выполнять то, что вам нужно. Он включает в себя API для написания шаблонов и генерации кода из них. Это уважаемый коммерческий продукт, но я сам его не использовал. Существует интерактивное справочное руководство, а ссылка на API приведена здесь: http://www.codesmithtools.com/help/Default.aspx##CodeSmith.chm/Using_the_CodeSmith_API.html.

Надеюсь, это поможет. Удачи!

1

Для шаблонов обработки Т4 вы должны использовать Microsoft.VisualStudio.TextTemplating.dll, но я не думаю, что вы могли бы распространять эту сборку

С уважением Muse VSExtensions