Skip to content

Add Open from NuGet feed dialog for browsing and opening packages - #3762

Merged
christophwille merged 1 commit into
masterfrom
christophwille/open-from-nuget-feed
Jun 10, 2026
Merged

Add Open from NuGet feed dialog for browsing and opening packages#3762
christophwille merged 1 commit into
masterfrom
christophwille/open-from-nuget-feed

Conversation

@christophwille

@christophwille christophwille commented Jun 10, 2026

Copy link
Copy Markdown
Member
image

Implements the feature requested in #2313: a new File > Open from NuGet feed... command (between "Open from GAC" and "Reload") that opens a package-chooser dialog.

What it does

  • Searches any public NuGet V3 feed: debounced search-as-you-type (Enter = immediate), pre-release toggle, paged results with a "Load more" button
  • Editable Package source ComboBox; feeds that answered a search are persisted as an MRU (capped, nuget.org always present) together with the selected feed and the pre-release flag
  • Detail pane with description, authors, license/project links, published date, downloads, tags, and a version dropdown (latest 100, newest preselected) with an Open button
  • Open downloads into the NuGet global packages folder (honoring NuGet.Config / NUGET_PACKAGES, reusing already-cached packages) with a progress bar and a cancellable download, then opens the cached .nupkg exactly like the regular Open command
  • Feed and download failures surface in an in-dialog status bar instead of crashing

Design notes

  • MVVM: all behavior lives in OpenFromNuGetFeedDialogViewModel behind a small INuGetFeedClient abstraction; the production NuGetFeedClient wraps NuGet.Protocol (already in Directory.Packages.props, newly referenced by ILSpy.csproj - lock files regenerated via updatedeps.ps1)
  • 32 new headless tests (settings round-trip, search/debounce/paging/error behavior, version + download flows incl. cancellation, dialog structure, menu placement) run against a scriptable fake client - no network in tests
  • The dialog-structure test doubles as a canary that the Simple theme templates PART_EditableTextBox for editable ComboBoxes

🤖 Generated with Claude Code

Opening a package from a feed previously meant downloading the .nupkg by
hand and using File > Open (#2313). The new File menu command searches any
public V3 feed (editable package-source list, persisted as an MRU in the
ILSpy settings), offers the latest 100 versions in a dropdown, and downloads
into the NuGet global packages folder so the cache is shared with every
other NuGet consumer on the machine and nothing is fetched twice. The cached
.nupkg is then opened exactly like the regular Open command. Feed access
sits behind INuGetFeedClient so the headless test suite covers search,
paging, version selection, download, cancellation, and error surfacing
without touching the network.

Assisted-by: Claude:claude-fable-5:Claude Code
@christophwille
christophwille merged commit 358ec20 into master Jun 10, 2026
9 checks passed
@christophwille
christophwille deleted the christophwille/open-from-nuget-feed branch June 10, 2026 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Have an option to Load from .nuget\packages automatically like you do from GAC Nuget/Paket integration

1 participant