-
-
Notifications
You must be signed in to change notification settings - Fork 39
Description
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!