So, I’m already annoyed in finding out that, a) when you try to upgrade Windows 8 RC to RTM, there is no upgrade apparently, just a new install, b) Johnny the idiot developer forgot a check in and lost a day’s worth of work.
Fine. But what I still hate about NuGet is how fundamentally broken it seems to be, at least when it plays with TFS. I have the ‘disable integration’ nuget config setting set to false. I tell it to download any missing packages (and of course there are missing packages, since I’m refreshing from TFS the entire source code as it is a new Windows install) upon build. Does it? Nope. I go to manage packages for solution and use the pretty little GUI to manage packages. Does it allow me to properly install packages in various projects? Nope. I go to the command line and tell it to fucking install MvcContrib. It tells me it is already installed. I tell it to fucking uninstall, it says it does. I absolutely fucking tell it to install MvcContrib, it says it is already installed.
ANYTIME you pull code from a repository on a clean machine, it should ALWAYS build AUTOMATICALLY (there are rare exceptions, and just because it builds doesn’t mean it will run (you might have to install, say SQL Server, first). I guess Visual Studio 2012 is supposed to handle all of this for you (theoretically, VS 2010 is as well, but that also never worked, recently I had to uninstall Nuget management completely from a solution at work because of it), except it doesn’t work right.
Why is that? Hard to tell. In some cases, it is because there is a pending check in on package files, and apparently it won’t let you anything until you do a check in. Also, when you have a shared project, it appears that if you try to make changes to it in the ‘wrong’ solution, the directory where it stores packages is in the ‘wrong’ place and so it gets confused.
So, I’m probably going to go back to the old fashioned way of manually putting all of my DLLs into a directory that can then be put in source control, so that I can actually get to work on replacing the lost day’s worth of work instead of trying to get Nuget to fucking d0 what it is supposed to do.