I’ve decided to play a bit with .NET Core on macOS and Linux, given that is now fully open source and cross-platform. For a simple C# project, I had to install a NuGet package (specifically, ImageProcessorCore) that was not published on the official gallery, but rather on MyGet, and because of that the normal
dotnet restore failed. The solution, adding a new NuGet package source, was simple in principle, but hard to figure out in practice when not using Windows!
On macOS and Linux, NuGet stores its configuration and downloaded packages in a folder called
.nuget inside your home directory.
Tip: As with every file and folder whose name starts with a dot,
.nugetis normally hidden when you open your home directory on UNIX systems, so you may need to access the file using the terminal or going to the folder in another way.
On the Finder in macOS, from the top menu choose “Go” and then “Go to Folder…”, then type
~/.nuget/and press “Go”.
.nuget directory there are two folders:
NuGetcontains the configuration file
packagesis the location where all downloaded packages are cached
Open the file
NuGet/NuGet.Config with any text editor to see the configuration for NuGet, including package sources. You can install another source simply by adding another XML element within
For example, here is my
NuGet.Config with the public MyGet feed enabled:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="myget.org" value="https://www.myget.org/F/imageprocessor/api/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>
21 October 2016 - Update
As Toby Henderson pointed out in the comments section below, you can also add a
NuGet.Config file locally in the root folder of your project; the syntax is the same as in the example above. Using a local file lets you check it into source control (e.g. git), so other contributors to the project do not have to modify their environment, and as such is a much better approach for adding project-specific package sources.