Semic NuGet (.NET)

Visual Studio Code extension for browsing NuGet v3 feeds and managing packages used by .NET projects in the current workspace.

Demo

Semic Version Changer demo

Features

Architecture

The extension is split into two runtime parts:

flowchart LR
  User[User in VS Code] --> View[NuGet Webview UI\nwebview/src]
  View -->|postMessage| Panel[NugetPanel\nsrc/Panels/NugetPanel.ts]
  Panel -->|calls| Service[NugetService\nsrc/Services]
  Service -->|reads projects| Workspace[.sln / .slnx / .csproj]
  Service -->|calls| Dotnet[dotnet CLI / NuGet v3 feeds]
  Panel -->|stateChanged / workspaceLoaded / browsePackagesLoaded| View

  Shared[SharedTypes\nsrc/Types/SharedTypes.ts] --- Panel
  Shared --- View

In practice:

Workspace Loading

On first run, the extension tries to find the first least-nested .sln or .slnx file in the workspace. If no solution file exists, it falls back to scanning all .csproj files.

After the first run, the selected mode is stored in workspace settings and is reused on later starts.

Shared settings:

{
  "semicDotnet.workspace.useAllProjects": false,
  "semicDotnet.workspace.discoveryInitialized": true
}

These settings are stored globally. The selected .sln or .slnx path is session-only and is not persisted to settings. After restarting VS Code, the extension discovers the least-nested solution again unless Use all .csproj projects is enabled.

You can change the project loading mode from the extension settings panel under the gear icon:

NuGet Sources

The extension reads sources from:

dotnet nuget list source

Default source setting:

{
  "semicDotnetNuget.source": "__all__"
}

Use __all__ to search all enabled HTTP NuGet v3 sources.

Only HTTP NuGet v3 feeds expose searchable package metadata, README and package details in the Browse/details views. Local/offline sources can still be listed and used by the .NET CLI where supported.

Requirements

Development

Install dependencies:

npm install

Run validation:

npm run lint

Build extension host and webview assets:

npm run compile

Package VSIX:

npm run package

Start local development:

  1. Open this folder in VS Code.
  2. Run npm run compile.
  3. Press F5.
  4. In the Extension Development Host run Semic NuGet: Open.

Commands