A raíz de los posts sobre generadores de código (como éste y éste), un amigo del blog me escribió para ver si de alguna forma era posible examinar el código fuente generado para poder depurarlo con mayor facilidad.
Y en efecto, es posible. Pero en vez de responderle directamente, he pensado que sería mejor compartirlo por aquí, de forma que pueda resultar de utilidad para alguien más :)
Por defecto, los archivos añadidos al proyecto por los generadores no llegan a tocar tierra, pues se gestionan directamente en memoria. Sin embargo, podemos forzar su escritura a disco, basta con añadir la siguiente sección al archivo .csproj
del proyecto consumidor del generador:
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GeneratedFiles</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
Según esta configuración, los archivos generados serán depositados en la carpeta /obj/GeneratedFiles
del proyecto. En esa carpeta, a su vez, encontraremos una carpeta por cada ensamblado generador incluido en el proyecto y, dentro de ésta otra subcarpeta específica para cada generador.
Espero que os sea de utilidad :)
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario