2009-01-30 9 views

Respuesta

10

Los archivos de plantillas T4 se pueden integrar en proyectos C++, pero es un poco más trabajo que con un proyecto C#/VB. Crea un nuevo archivo de texto en tu proyecto C++ y dale una extensión .tt. Luego escribe tu plantilla como es normal. Un proyecto de C++ necesita más trabajo para lograr que transforme las plantillas. La forma rápida y sucia en que lo hice funcionar fue agregar un paso de compilación personalizado y hacer que llame directamente a "C: \ Archivos de programa \ Archivos comunes \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe". Otra forma que encontré fue agregar una tarea personalizada de MSBuild. Las instrucciones se pueden encontrar here

This página tiene más información y algunos buenos enlaces a otras páginas sobre el uso de la generación de código T4.

+0

De alguna manera parece que no funciona. Intenta crear un nuevo proyecto Win32 C++. A continuación, agregue un archivo .tt simple y haga clic en compilar. Nada se genera. –

+0

oops, tienes razón. Editando mi respuesta. – Logan5

+0

Gracias por su respuesta. Se puede hacer que funcione, pero definitivamente no es tan conveniente como C#. Esperemos que esto cambie en el próximo VS 2010. –

4

MSBuild La tarea no funciona, ya que es un archivo vcproj (C++) por lo que se usa vcbuild. La manera más fácil de obtener el tt compilado es agregar paso de compilación personalizado como el siguiente ...

"C: \ Archivos de programa (x86) \ Archivos comunes \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe" -out $ (ProjectDir) \ VSProject.cpp -I $ (ProjectDir) $ (ProjectDir) \ VSProject.tt

Pasé varias horas investigando la solución MSBuild Task anterior y es bastante buena para el código administrado, pero no veo ninguna manera de úselo para C++ (barra convirtiendo el vcproj en csproj eek)

+0

Incluso con esta solución, ¿no tiene que agregar manualmente el archivo cpp al archivo vcproj? – MrSlippers

Cuestiones relacionadas