Add EvaluationContext.SharingPolicy.SharedSDKCache #9181
Merged
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.
Contributes to AB#1811625
Context
EvaluationContext
is a container for various cached state, improving the performance of project evaluation. Sharing this state between evaluations is currently all-or-nothing, which has been identified as a blocker for wider adoption ofEvaluationContext
in Visual Studio scenarios.Changes Made
Added a new
SharedSDKCache
sharing policy with the semantics of sharing only SDK resolutions. Specifically, it does not allow sharing of general file system state, which could lead to over-sharing when used during VS background processing.Testing
Extended existing unit tests.
Notes
In retrospect, it may have been more appropriate to make
SharingPolicy
bit flags with each piece of cached data controlled by its own bit. But because changing the existing enum values would be a binary compat break, I'm opting for a new simple ordinal value.