...and you like it

Hosting a Simple “Read-Only” NuGet Package Feed on the Web

As you may know, NuGet supports aggregating packages from multiple
package sources. You can simply point NuGet at a folder containing
packages or at a NuGet OData service.

A while back I wrote up a guide to hosting your own NuGet
feed.
Well, we’ve made it way easier to set one up now! And, surprise
surprise, it involves NuGet.
I’ll provide step by step instructions here. But first, make sure you’re
running NuGet 1.2!

Step 1: Create a new Empty Web Application in Visual Studio

Go to the File | New | Project menu option (or just hit CTRL +
SHIFT + N) which will bring up the new project dialog and select
“ASP.NET Empty Web Application” as in the following screenshot (click
to enlarge).

This results in a very empty project template.

Step 2: Install the NuGet.Server Package

Now right click on the References node and select Add Library Package
Reference to launch the NuGet dialog (alternatively, you can use the
Package Manager Console instead and type
Install-Package NuGet.Server).

Click the Online tab and then type NuGet.Server in the top right
search box. Click Install on the NuGet.Server package as shown in
the following image (click to enlarge).

Step 3: Add Packages to the Packages folder

That’s it! The NuGet.Server package just converted your empty website
into a site that’s ready to serve up the OData package feed. Just add
packages into the Packages folder and they’ll show up.

In the following screenshot, you can see that I’ve added a few packages
to the Packages folder.

Step 4: Deploy and run your brand new Package Feed!

I can hit CTRL + F5 to run the site and it’ll provide some instructions
on what to do next.

Clicking on “here” shows the OData over ATOM feed of packages.

Now all I need to do is deploy this website as I would any other site
and then I can click the Settings button and add this feed to my set of
package sources as in the following screenshot (click to enlarge).

Yes, it’s that easy! Note that this feed is “read-only” in the sense
that it doesn’t support publishing to it via the NuGet.exe command line
tool. Instead, you need to add packages to the Packages folder and
they are automatically syndicated.