I'm working on a project where I need to automate the process of modifying a NanoFramework project. I want to create a generic .NET Core solution that can perform the following tasks:
- Download a base NanoFramework project from a repository (Git or similar).
- Modify the project's resource files, especially the client certificate, based on the client's specific needs.
- Add NuGet packages to the project, as different clients may require different packages.
- Build the project and obtain the binaries (binaries are typically firmware images).
Ideally, I'd like to parameterize this process, so I can repeat it for different clients easily.
Example :
I have a base NanoFramework firmware code in a repo with a Resource.resx file containing a client certificate. I need to automate the process of building custom firmware for different devices, each requiring a different client certificate and specific NuGet packages.
For example, I have two devices: ESP32-1 and ESP32-2. ESP32-1 needs a firmware bin with a client certificate change and specific NuGet packages for an ADXL sensor, while ESP32-2 requires a different certificate and NuGet packages for a BMP280 sensor.
How can I create a generic .NET Core solution that, on the fly, modifies the client certificate, adds the necessary NuGet packages, and builds the NanoFramework project, returning the customized firmware bin for each device?