Publish a package to the feed

Drop a nupkg into an artifacts folder and restart.


The NuGet feed is a file-backed, read-only view. "Publishing" is copying a file and restarting.

1. Pack your package

dotnet pack -c Release

Or use the repo's pack script if your project has one.

2. Copy the nupkg into an artifacts folder

In single-project mode, that's whatever you configured as ArtifactsRoot in appsettings.json:

"SharpDocs": {
  "ArtifactsRoot": "artifacts"
}

In multi-project mode, each project has its own artifacts folder declared in its sharpdocs.json (default ./artifacts relative to the project). Drop the nupkg into the project that owns it.

Symbols packages (.snupkg or *.symbols.nupkg) are ignored by the scanner, so you can leave them alongside without breaking anything.

3. Restart the host

The feed scans artifacts once at startup. To pick up a new file:

# Local dev: Ctrl+C, then:
dotnet run --project src/MyApp

For production, whatever process supervisor you use (systemd, Kestrel behind IIS, Docker) just needs to restart the app.

4. Verify

Hit /packages/{id} in the browser — version history, dependencies, and a download link should be there. /packages shows the unified listing across every project's artifacts folder. Or query the feed directly:

curl https://your-site.example/v3/flatcontainer/mypackage/index.json

Multiple versions

Drop them all in. The scanner groups by package id and sorts versions ascending, so the last one is "latest" for search and registration responses. Consumers can reference any version that's on disk.

Removing a package

Delete the file, restart. There's no soft-delete or "unlist" — the feed only knows what's on disk right now.