Backport fast up to date check to 15.3.x #2346
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.
Customer scenario
When the user requests a build in VS, CPS will call the project system to see if we believe it can skip calling MSBuild. This is faster than running MSBuild and having it determine that everything is up to date.
Bugs this fixes:
Fixes #62
Workarounds, if any
This is a performance optimization, it is not required for functionality, just speed.
Risk
Fast up to date checks carry a level of risk because if the check is wrong, we will either build when we didn't need to, or won't build when we need to. The former situation isn't any worse than what we have now. The latter situation is bad but can be mitigated in several ways:
DisableFastUpToDateCheck
property that will disable the check for that projectUpToDateCheckInput
andUpToDateCheckOutput
items to their project to work around missing checks.This PR also adds logging to a "Project" output window that should help easily diagnose where problems are.
Performance impact
Build performance should improve, especially for solutions with many .NET Core projects.
Is this a regression from a previous update?
No