Migrate to .NET 5.
Native DllExports
Look if DNNE can to the job.
Injecting the Plugin Wrapper Code
Try to use c# Source Generators
to dynamically generate and inject wrapper classes.
Build Task static Assembly analysis
Try to use System.Reflection.PortableExecutable.PEReader as used by DNNE.
To read plugin type information needed for post-processing and zip generation.
Project Structure
- TcBuild
- as one nuget containing everything needed,
or as meta nuget referencing everything as distinct nugets
- TcBuild.Generator
- TcBuild.Target
- post processing build target
- TcPluginBase
- Base types required for plugin authors
Steps
Migrate to .NET 5.
Native DllExports
Look if DNNE can to the job.
Injecting the Plugin Wrapper Code
Try to use c# Source Generators
to dynamically generate and inject wrapper classes.
Build Task static Assembly analysis
Try to use System.Reflection.PortableExecutable.PEReader as used by DNNE.
To read plugin type information needed for post-processing and zip generation.
Project Structure
or as meta nuget referencing everything as distinct nugets
Steps