[REDO] Fix tests running on version freeze #10781
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.
This change had to be reverted because it caused issues on the pipeline due to attempt to access the locked dlls.
It occurred to me that bootstrap targets attempt to access the same set of dlls, so preparing test assets AFTER having the bootstrapped version must help.
Fixes #10702
Context
The issue stemmed from a missing Microsoft.Build package during the test execution. CustomCheck is compiled using a specific version of Microsoft.Build, but during the CheckCandidate run, this package couldn't be restored. This mismatch led to the problem.
Build FAILED. "/Users/runner/work/1/s/artifacts/bin/Microsoft.Build.BuildCheck.UnitTests/Debug/net9.0/TestAssets/CheckCandidate/CheckCandidate.csproj" (Restore target) (1) -> (Restore target) -> /Users/runner/work/1/s/artifacts/bin/Microsoft.Build.BuildCheck.UnitTests/Debug/net9.0/TestAssets/CheckCandidate/CheckCandidate.csproj : warning NU1701: Package 'Microsoft.IO.Redist 6.0.1' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework 'net8.0'. This package may not be fully compatible with your project. "/Users/runner/work/1/s/artifacts/bin/Microsoft.Build.BuildCheck.UnitTests/Debug/net9.0/TestAssets/CheckCandidate/CheckCandidate.csproj" (Restore target) (1) -> (Restore target) -> /Users/runner/work/1/s/artifacts/bin/Microsoft.Build.BuildCheck.UnitTests/Debug/net9.0/TestAssets/CheckCandidate/CheckCandidate.csproj : error NU1102: Unable to find package Microsoft.Build with version (>= 17.12.0)
Solution
Pack Microsoft.Build and it's dependencies for the tests to a specific location.