Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Feature request, dotnet-codegencs] Be able to reuse code for templates

Abierto
#39 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
csharp
Área
tooling

Línea de trabajo

Empieza leyendo el punto de entrada dotnet-codegencs y las clases TemplateBuilder y TemplateLoader mencionadas en el issue; después, sigue cómo se gestionan una plantilla .csx y sus referencias #r. Compara las opciones de reutilización solicitadas—#load, varias plantillas y referencias a DLL locales—y define como terminado disponer de una forma compatible de compartir la lógica de las plantillas sin copiarla entre plantillas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi!

First of all, thank you very much for the tool! It is easy to use, it's simple and it keeps saving a lot of time for our team.

Second, I need an advice on how to to reuse code for templates while keeping "text template + codegen tool" approach. We do use dotnet-codegencs tool to scaffold boilerplate code for our projects. Something like dotnet new but with some logic involved. It will be nice to be able to reuse basic logic and do not copypaste it across csx templates.

What I have tried so far

Use #load directive

Sadly, this option is not supported. The TemplateBuilder supports only #r directives.

Pass multiple templates as args to the dotnet-codegencs tool

Not supported, there currently can be only one template

reference local dll (not nuget package)

#r "ScaffoldHelpers.dll"
...

or

dotnet-codegencs template run .\TestTemplate.csx -r .\ScaffoldHelpers.dll

Fail with

Unhandled exception: System.TypeInitializationException: The type initializer for 'TestTemplate' threw an exception.
 ---> System.IO.FileNotFoundException: Could not load file or assembly 'ScaffoldHelpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

the reason is that referenced assemblies are not copied into the build directory and are not loaded by TemplateLoader.

Write custom runner using TemplateBuilder / TemplateLoader classes

Sadly, these are not distributed as a nuget packages, only as a part of dotnet-codegencs tool

Fork the dotnet-codegencs

We are currently using custom fork but it looks like a hack, I'd prefer to keep using original tool:)

Thanks in advance, hope you have a good Holidays!

Lenguaje dominante
C#
Estrellas
307
Forks
40
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Drizin/CodegenCS

Todos los issues de Drizin/CodegenCS

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.