MichalStrehovsky / zerosharp

Demo of the potential of C# for systems programming with the .NET native ahead-of-time compilation technology.
2.02k stars 105 forks source link

Updated efi(noruntime) example with publish profiles #38

Closed TheEndHunter closed 1 year ago

TheEndHunter commented 1 year ago

Created multiple publish profiles in the efinoruntime project and expanded targets in the project to allow for the publish profiles to build the VHDX file in efinoruntime.

Added a solution file so project exploration is easier in visual studio.

Updated the README in efinoruntime's project directory and the README root directory to reflect the changes made to the project.

split each class into own file and organized them by namespace into the project, remove some excess from the ZeroSharp.cs file and make it more readable.

Made these changes to make it easier to build the VHDX through the publishing tools in dotnet and added ARM64 support to the build process. Cannot do x86 and ARM as the IL Compiler package does not support. left some some of the supporting code for x86/ARM in case the IL Compiler packages has support for them in older .NET versions.

MichalStrehovsky commented 1 year ago

Thanks! It might take a while until I have time to look at this. I didn't even know about "publish profiles" until now.

Just a note that the .cmd files are not deprecated - it is actually my preferred way to use this. The project files are in a constant uphill battle against MSBuild. E.g. the with-runtime sample broke in the .NET 7 upgrade just because of MSBuild targets getting in the way and passing command line arguments to the AOT compiler that are not supportable.

TheEndHunter commented 1 year ago

Thanks for the information l, I'll rewrite that section of the readme today and commit the changes.