More fun with Nuget, or NuGet Still Sucks

I like Jimmy Bogard.  A lot.  He seems really cool.  We’ve never met, and besides maybe an occasional cross comment on blog posts, I don’t think I’ve ever talked to him.

But he seems cool, and he seems to be a really good developer, much better than I am (though a sick hamster with some JQuery skills is probably a better developer than I am, but I digress).

Anyhoo, he had a recent post about some presentation he gave in various places like Dublin and Kiev and Guam and Haiti and Narobi (okay, I’m exaggerating), and posted about it here.  I do not like the word “polygot” much but the idea that I could get a codebase from a really good developer that “showed how to build a single application that combined relational, key/value, document and graph databases, without resulting in a huge mess” was pretty appealing to me at this point in time, for various reasons.

I have always believed that you should be able to download a codebase and have it immediately compile.  Well, to a point.  If you have to have a database server installed, you can’t really enforce that with a download, but you get the idea.

So, I went to Github to get the code, but since I don’t have Git installed at the moment (yeah, yeah, I know.  I’m using Team Foundation Service at the moment.  Yeah, yeah, I know.  Bite me.), I had to download his entire presentation zip, which is actually pretty cool, a lot of good stuff to look at.

So, I unzip and try to compile.  Not a chance.  Missing references all over the place.  Okay, that’s understandable, he uses large numbers of nuget packages (here’s an example): 


No problem.  You can tell Visual Studio to get missing Nuget packages on build, nice feature, right?  Here it is:



Pretty awesome, right?  So when you build, it will download all of the……huh.  No, it won’t.  What the hell?

Having forgotten this, it took me 10 minutes or so to remember that you have to actually tell the Visual Studio solution that you really mean it (what the fuck) by right clicking on the solution and choosing the “yes, I really fucking mean that I want you to manage Nuget packages.”

Okay, that was annoying, but now at least as I build it is managing all of the dependencies and at least I will get a clean……build failed.  What?

Hmm, let’s try to manage the packages through the little gui thing.  It says there are packages missing, would you like to update?  Yes, I would.  Oh, that didn’t work, it is saying the same thing, but no error message.  That is so totally useful.

What it was, was that Jimmy was using an alpha build of the next version of the Entity Framework, but guess what, they don’t actually keep all of the alpha builds in Nuget, just the most recent (I guess), so it couldn’t find the alpha1-1123blahblahblah package and bombed out.  So, we can just go into the packages.config and change the build number right?  No, apparently not, it gets confused, so you have to go into the gui package manager thingy and remove the missing version, and then go to the command line so that you can indicate you want the latest –pre build.

Of course, I still can’t run the app after successfully building it, as the database is missing, or I can’t find it, or whatever.

Sorry, this just sucks.  If you have a lib directory with all of your dependencies in your source and reference that, you will never have problems downloading source code and building it.  You miss all the ‘nice’ Nuget features, but, somehow life still goes on when you don’t use.

It is really good code to read though, so I’m glad I downloaded it.

posted on Sunday, December 23, 2012 3:40 PM Print
# re: More fun with Nuget, or NuGet Still Sucks
Jimmy Bogard
12/31/2012 8:57 AM
Sigh. Mea culpa. It's actually a little hard to make the sample actually *run* since it requires 4 different databases up and running (SQL, Raven, Redis and Neo4j) but just having it compile would be nice I suppose.
# re: More fun with Nuget, or NuGet Still Sucks
12/31/2012 12:37 PM

A readme with instructions on how to get the different databases up and running, or a pointer to any existing one, would be helpful if you had the chance.
# re: More fun with Nuget, or NuGet Still Sucks
11/12/2013 6:31 PM
NuGet is a horrible piece of crap nearly one year later. Most developers probably like it though, unfortunately.

I'm having a hell of a time coding up a legacy application that used NuGet. There is not one good reason to keep your dependencies updated via unreliable authors (Microsoft is also an unreliable author: just try getting Entity Framework on NuGet to work... oh but you cant!) who can unlist their entire project, or versions at will.

Using NuGet is a great way to break your builds.
# re: More fun with Nuget, or NuGet Still Sucks
12/20/2013 1:28 PM
Nuget is OK, but falls far short of its mission for the reason you state above. If I need version 'x' of a package and the latest is 'y' I have to run to the command line, and then NuGet will nag me to death to update when I can't.

My favorite part is when I have 10+ projects that need to have their libs updated to the next version. Let's see, should I run Nuget on all of them, or just dump a file in a libs folder and so something interesting with my time?

My second favorite part is that I end up with EVERY single version of jQuery in my web projects, after adding a few packages.
# re: More fun with Nuget, or NuGet Still Sucks
dan Randolph
5/11/2015 9:24 PM
Mvc templates and nuget must be married!
# re: More fun with Nuget, or NuGet Still Sucks
Jim Beam
6/8/2015 12:58 PM
I agree NuGet with VS is junk.

I have been telling developers to check in all the Packages in TFS when done with a project. But some just forget. Then it is hours and hours to get the project to ru.

Post Comment

Title *
Name *
Comment *  
Please add 3 and 7 and type the answer here: