Mastering NuGet in JetBrains Rider: The Integrated Package Management Workflow
Learn how Rider’s NuGet tool window streamlines package installation, source configuration, and dependency resolution, with a step‑by‑step example, pitfalls to avoid, and best‑practice tips for .NET developers.
08 Oct 2026, 11:34 UTC

Why Rider’s NuGet Tool Window Is Useful
For .NET developers, managing package dependencies is a daily chore. Rider bundles a full‑featured NuGet client inside the IDE, so you can search, install, update, and visualize dependencies without leaving the editor. The tool window automatically detects whether the project uses PackageReference or packages.config and applies the correct logic, reducing the risk of manual edits that break the build.
Getting Started: Open the NuGet Tool Window
1. Open a solution that contains a .NET project.
2. From the bottom of Rider, click the NuGet tab. If the tab is hidden, enable it via View → Tool Windows → NuGet.
3. The window shows two panes: Packages (search results) and Installed (current project references).
Adding a Package: A Worked Example
Suppose you want to add Newtonsoft.Json version 13.0.1 to a project that uses PackageReference. Follow these steps:
- In the Packages pane, type
Newtonsoft.Jsoninto the search box. - From the list, select the exact version
13.0.1and click Install. - Rider updates the
.csprojfile automatically. The resulting snippet looks like this:<ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> </ItemGroup> - After installation, Rider shows the package under the Installed pane and highlights any transitive dependencies in the Dependency Graph sub‑tab.
To verify the change, open the .csproj file in the editor and confirm the <PackageReference> element appears. If Rider prompts to reload the project, click Reload to synchronize the IDE state.
Custom Package Sources and nuget.config
Rider respects a nuget.config file at the solution or user level, allowing you to add private feeds or override authentication. Example nuget.config:
<configuration>
<packageSources>
<add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
<add key="PrivateFeed" value="https://myfeed.company.com/nuget" />
</packageSources>
<packageSourceCredentials>
<PrivateFeed>
<add key="Username" value="myuser" />
<add key="ClearTextPassword" value="mypassword" />
</PrivateFeed>
</packageSourceCredentials>
</configuration>
After adding nuget.config, refresh the NuGet tool window. Packages from PrivateFeed appear in the search results, and Rider automatically passes the credentials to the underlying dotnet restore command.
Restoring and Conflict Detection
When you open a solution, Rider runs a background dotnet restore (or nuget restore for older SDK‑style projects). The restore process pulls all referenced packages and resolves transitive dependencies. Rider’s analysis engine flags:
- Outdated packages with a subtle warning icon.
- Version conflicts where two transitive dependencies require incompatible versions of the same package.
To trigger a manual restore, right‑click the solution node and choose Restore NuGet Packages. The command runs in the IDE console. A typical output snippet looks like this:
Restore completed in 12.34 seconds.
Check the Events tab for any errors that may need manual resolution, such as missing feeds or authentication failures.
Limitations and Common Pitfalls
- Version Mismatch: Rider’s internal NuGet client may be older than the
dotnetCLI installed on your machine. If Rider reports unsupported API errors, upgrade thedotnetSDK or update Rider to the latest patch. - Large Solutions: Projects with hundreds of packages can cause the NuGet tool window to freeze during initial indexing. In this case, close the window, wait a few seconds, and reopen it. Consider disabling the Dependency Graph view if it becomes sluggish.
- Manual
.csprojEdits: If you edit the.csprojfile manually (e.g., copy‑paste a<PackageReference>block), Rider may not immediately reflect the change. Click Reload Project to refresh the NuGet state. - Authentication Tokens: When using secure feeds, avoid storing plain‑text passwords in
nuget.config. Usedotnet nuget add sourcewith the--store-password-in-clear-textflag only for local testing. - NuGet Cache: Rider caches package metadata locally. If a package version is updated on the feed but Rider still shows the old version, clear the cache via File → Invalidate Caches / Restart.
By following the workflow above and being mindful of these limitations, you can keep your .NET dependencies healthy and avoid build breaks caused by package mismanagement.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.