He encontrado un pequeño problema con la generación de mi código T4.Cómo deshabilitar las directivas #line que se escriben en el archivo de salida de generación T4
He descompuesto mis plantillas T4 en archivos separados y los he colocado en varios directorios, he hecho esto para que parte de la generación de mi código pueda reutilizarse en múltiples proyectos, por ej. la generación de modelos, la generación de repositorios y la generación de servicios incluyen todos un archivo central EntityGeneration.tt.
Desafortunadamente, cuando TextTemplating resuelve mis inclusiones anidadas, crea una directiva #line preprocesador larga en su archivo .cs generado, combinando todas las rutas relativas al archivo incluido de nivel más bajo.
Desafortunadamente, como esta ruta está formada por rutas relativas, termina innecesariamente larga, tanto que excede la longitud máxima de la ruta (Windows 7).
Aquí está la línea en falta desde el código generado en caso de estar interesado:
#line 3 "C:\VS2010\AlbatrossTravelGroup\ASC\AlbatrossTravelGroup.ASC.BusinessRules\Services\Contracts\..\..\..\..\AlbatrossTravelGroup.BusinessRules\Services\Contracts\..\..\..\AlbatrossTravelGroup.Models\Repositories\Contracts\..\..\../AlbatrossTravelGroup.Common/CodeGeneration.tt"
Mi pregunta es, ¿cómo puedo desactivar estas directivas se escriben en el archivo de código generado? En su defecto, ¿cómo puedo evitar este problema sin cambiar la estructura de mi archivo?
Actualmente, como solución temporal, he creado una carpeta, "CodeGeneration", he creado enlaces simbólicos en esta carpeta a cada uno de mis archivos T4 para incluir.Luego, en lugar de cada archivo T4 incluido, incluidos otros archivos T4 a través de una ruta relativa, usan solo el nombre del archivo. Luego, en la ubicación final donde deseo utilizar estas plantillas T4, utilizo una ruta relativa al directorio "CodeGeneration". Esto da como resultado una longitud de ruta mucho más corta, ya que utiliza muchas menos rutas relativas. Si alguien quiere una explicación completa, publicaré una respuesta si la solicito :) – Lukazoid
Mi solución temporal está por encima de la quebrada, ni idea de por qué el estudio visual simplemente comenzó a fallar al resolver los archivos. Finalmente, tengo que usar el registro para especificar otros directorios tt include, menos que ideal, pero parece ser lo único que funciona. – Lukazoid
Puede intentar algo como la solución de macro VS presentada [aquí] (http://stackoverflow.com/questions/3506525/t4-preprocessed-template-debugging-not-working-visual-studio-2010-rtm/7505247#7505247) – BitMask777