Add slnf support to dotnet package list #6532
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.
Bug
Fixes: NuGet/Home#11789
Description
dotnet package list
reads solution files via an internal helper method, so this change potentially adds support for solution filters to more than justdotnet package list
.The biggest issue is that there is no public API to load and handle solution filters. See NuGet/Home#11789 (comment) for some more details. NuGet.exe supports slnf by using reflection to call a non-public MSBuild API. I'm using this as precedent as something testing and has been working for years. But it's a risk.
Other info:
SolutionFile
API works with slnx files, so reverted most of the PR that added Microsoft.VisualStudio.SolutionPersistance, since it's no longer needed. This makes a lot of async method into non-async methods. There's a compiler warning about private/internal methods that are async without calling await, and since we treat warnings as errors, it's not optional to deal with them. Hence why there's so much async related changes.PR Checklist
Link to an issue or pull request to update docs if this PR changes settings, environment variables, new feature, etc.the docs on dotnet package list doesn't mention solution filters or slnf, so I don't think any docs need to change.