Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

17 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 13 de abril de 2021
.NET Core

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!