Overhaul build and project systems and drop Mac/POSIX code by mjcheetham · Pull Request #1744 · microsoft/VFSForGit (original) (raw)
This PR simplifies and modernises the build system significantly. Move to the new MSBuild project file format for all .NET projects and avoid mixing ecosystems between dotnet/msbuild
, nuget/dotnet
and packages.config/ProjectReference
(where possible).
All .NET projects target .NET Framework 4.6.1, and we drop all .NET Standard and .NET Core targets.
Native code uses the Windows SDK 10.0.16299 and the VS2019 toolset.
We also drop more/most of the macOS and POSIX code to aid in simplifying the build - VFS for Git on Mac and Linux were abandoned for various reasons.
Functional tests only run against the currently installed VFS for Git (on %PATH%
) and the option to run against the just-built/dev version has been removed (it was not used in practice).
Add a GitHub Actions workflow for CI and PR builds. (Also added a YAML-based Azure DevOps pipeline for release builds, but this is not used.. yet).
Notes:
- The PR is best reviewed commit-by-commit, but note that each commit does NOT build standalone, and the entire series must be taken as a whole to ensure a successful build.
- The majority of the new build design comes from Scalar and GCM Core, so there's some similarities in here to those systems. For example, the
GVFS.MSBuild
files come pretty much verbatim from theScalar.MSBuild
project in Scalar.