dotnet / dotnet/msbuild

Pass file cache to sdk resolvers

Open
#5,697 1 comment 0 reactions 0 assignees View on GitHub
Area: Performance triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

As a potential perf optimization, change the [sdk resolver interface ](https://github.com/dotnet/msbuild/tree/master/src/Framework/Sdk) to allow passing the evaluation's [file system cache](https://github.com/dotnet/msbuild/blob/master/src/Build/FileSystem/MSBuildFileSystemBase.cs) to each resolver.

If the sdk resolvers do IO for every resolve call (from a super brief glance over them they do), this would allow them to reuse the same IO cache as the evaluator. This further gets enhanced when other tools are driving evaluation (VS, quickbuild) and are using a shared evaluation context.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in the src/Framework/Sdk interface and read MSBuildFileSystemBase to understand the evaluation file system cache. Trace how SDK resolvers perform I/O during resolve calls and how the evaluation cache could reach them. Done means the resolver interface accepts the evaluation cache and resolvers can reuse it without changing resolution behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.