NuGet Cache: ensure for clitool nupkg is there even after skipped 2nd extraction #4145
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.
Fixes #4144
The problem is that we extract twice into the same place in case of clitool for some reason, but the second time NuGet seems to skip the extraction assuming it's already extracted - and hence not extracting the missing nupkg again. In this case we now move it back, instead of deleting it.
However, the clitool use case should be reviewed, the current implementation doesn't make much sense to me (it extracts twice into the same place; it prepares a different target folder, but this folder is not actually used for anything except logging). Also, is the .nuget/packages/.tools folder still the right place? Newer SDKs at least on Windows seem to put local tools just normally in the cache like any other package, and global tools instead into .dotnet/tools (but in a weird way).