microsoft / microsoft/MSBuildSdks
Traversal projects don't work with the Visual Studio Fast Up-to-date Check
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 508
- Forks
- 94
- Avg merge
- 6h 40m
- Merged PRs (30d)
- 2
Description
VS's fast up-to-date check (FUTDC) performs a quick file timestamp check on a projects inputs and outputs to determine whether it needs to call MSBuild. When it can avoid doing so, builds are much faster.
However, this requires having both inputs and outputs to compare against.
Normally, building a project twice should make the second build a no-op. For a traversal project, the project will eternally be considered out-of-date.
Logging shows:
Output 'D:\repo\MyTraversalProject\Debug\net472\MyTraversalProject.dll' does not exist, not up-to-date.
This problem might be addressed by having the build for this project produce a dummy file in the intermediate (obj) folder, and referencing that file as a UpToDateCheckOutput item. On every build, touch that file.
It'll also have to stop listing the non-existent output file as an expected output.
For more info on this, see https://github.com/dotnet/project-system/blob/main/docs/up-to-date-check.md.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the traversal project build behavior and the Visual Studio Fast Up-to-date Check guidance in docs/up-to-date-check.md. Investigate how the project currently declares expected outputs, then verify that a build produces and touches an intermediate UpToDateCheckOutput while no longer reporting the nonexistent DLL; done means the second build is treated as up to date.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100