Pregunta

He usado las plantillas Activerecord T4 de Subsonic en un par de proyectos. Hoy agregué las mismas plantillas de uno de estos proyectos (sin los archivos de origen .cs generados) a un nuevo proyecto.

Por alguna razón, cuando ejecuto el generador de código de plantilla T4, en lugar de generar:

ActiveRecord.cs, Context.cs, StoredProcedures.cs y Structs.cs

El generador de plantilla crea:

ActiveRecord1.cs, Context1.cs, StoredProcedures1.cs y Structs1.cs en cambio.

He eliminado todos los archivos de fuentes .cs en la carpeta Activerecord y no hay otros archivos con estos nombres en toda la solución.

Si bien esto no es un problema, porque se generan las clases correctas, espacios de nombres, etc., es molesto ver el número 1 Agradado en el final de los nombres de archivo.

Estoy usando subsonic 3.0.0.3.

¿Alguien tiene alguna idea de por qué está sucediendo esto?

¿Fue útil?

Solución

Una solución es eliminar los archivos .cs generados y editar el archivo .proj manualmente. Haga clic derecho en el proyecto en VS2008 y vaya a descargar el proyecto.

Busque en el archivo .proj para Activerecord1.cs dentro de lastGenOutput y cambie de nuevo a Activerecord.cs. Repita para los otros archivos. De alguna manera, estos nombres se incrementan.

<None Include="T4AutoGen\ActiveRecord.tt">
  <Generator>TextTemplatingFileGenerator</Generator>
  <LastGenOutput>ActiveRecord.cs</LastGenOutput>
</None>

Guarde el archivo y vuelva a cargar el proyecto. Sus archivos deben generar correctamente ahora.

No estoy seguro de por qué esto sucede aparte de una rareza con plantillas T4. Eso debería hacer que vuelvas de nuevo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top