Embedded keys are generated at build-time from the IncludedKeys.txt file under the build directory.
A separate codegen build project was created because generating the embedded keys requires the same LibHac that is being built.
_buildCodeGen.csproj is located under CodeGen because NUKE doesn't like having two build projects in the same directory.
Use the version in the .csproj if there is no local git repository.
Always use Windows line endings in codegen output.
Update build dependency versions. We're still using GitVersion 5.1.3 because of https://github.com/nuke-build/nuke/issues/509.
This allows over 40% of the CoreRT native binary size to be removed by removing reflection capabilities.
The "--noreflection" option for the build script can be used to build hactoolnet with no reflection.
The Linux build won't always work because creating a new thread for the progress bar runs into some issue with EventSource being removed.
.NET Core 2.1 introduced some runtime changes to support Span<T> and ByReference. Along with this comes the ability to do things like reinterpret memory as a different type. In .NET Framework the garbage collector couldn't track these references. These features proved useful enough that support for .NET Framework was dropped.
* Target netstandard2.1 and netcoreapp3.0
* Build: Zip native builds. Put version in zip filename
* Always build native exe on AppVeyor
- Make generated NuGet packages deterministic.
- Add a signing option to the build script.
- Set versions for pre-release builds.
- Publish packages to a MyGet feed.
- Make Windows-produced artifacts match Linux-produced ones