Sometimes you need a new NuGet server

We had been using a Nuget server that one of my coworkers had put together way back before I started here. It got the job done, but had a bit of a problem when we got up over 3000 different revisions of the packages in our private repository. Mostly that it was either timing out or just taking multiple minutes to perform ANY operation against the package store.

So after getting 3 timeout messages in a row (and wasting a good 10 minutes while Visual Studio was ENTIRELY devoted to the act of looking for my package updates), I went looking and found Klondike! It’s an implementation of the Nuget.Server package which relies on a index to serve up its package listings. The main result is that the nuget client now takes only seconds to bring up the initial page of the results, and as a bonus the search actually presents useful information now.

For now we’re just using it as a read-only source for our packages. I don’t know that we’ll ditch the old server, but I’m pretty confident in saying that you might want to give Klondike a shot if you have any desire for a private nuget repository.

After playing around with Klondike for about a week, there was definitely some funkiness regarding searching for updates – either at the solution or project level. I still keep the bindings around for my old, slow nuget server feed as a result. Tried to track down the offending code, but could not spend enough time to grok the difference in the queries being sent to the webservice.