[Experiment] Rework the dependencies in fake-cli / Fake.Runtime a little. #2825
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I'm not sure if this is a sensible thing to try, without knowing the history of it or anything, but -
I was looking at the failure in the .NET 8.0 update PR at https://github.com/fsprojects/FAKE/actions/runs/10942268784/job/30378864009#step:10:12614 and the issue described at #2722 and was wondering - Is there actually a need to package the Microsoft.Build assemblies in the fake-cli nuget package - as in, are they actually used by any of the code in fake-cli or are they just pulled in as part of a dependency chain and not actually used?
So, I tried bending things a bit to include a couple of pieces of Fake.DotNet.Cli inline in Fake.Runtime (just the bits for getting global.json and executing 'dotnet --version' and excluding any dependencies on MSBuild) and the build appears to work.
It's not very pretty due to how the code is layed out in a single module, but here it is in acse the idea is of any interest.