Posts
1150
Comments
891
Trackbacks
1
Why do I have to use NuGet?

NuGet is Microsoft’s attempt to copy Ruby gems, as far as I can tell.  Great.  All for it.

But why is it that I have to use it, instead of getting the option to install normally through some MSI or other option?

Maybe I’m missing something, but if I want to install, say, EF 4.2 Beta 1, why can’t I have an option to install it globally, as opposed to having to install it within some specific project/solution?  I’m using a Microsoft release as an example, but I could just as easily use, e.g. AutoMapper as an example.

While I like the NuGet option, I don’t want to have to install things repeatedly across multiple projects if it is something I know I want across the board.

posted on Monday, August 22, 2011 8:53 PM Print
Comments
Gravatar
# re: Why do I have to use NuGet?
Jimmy Bogard
8/22/2011 10:18 PM
I wrestled with this one for quite a while. The CodePlex downloads are just a bit annoying to deal with, and as far as I'm concerned, those are pretty much dead.

Probably a good solution is to have NuGet, nightly downloads (like I have on the site) and archived downloads. I'll keep doing the GitHub site downloads for that (since that bandwidth is still free at least). Thanks for the suggestion, I'll make sure I don't lose the non-NuGet (but less scary than nightlies) option.
Gravatar
# re: Why do I have to use NuGet?
jdn
8/22/2011 10:40 PM
@Jimmy:

The other thing that is annoying about NuGet is that when you use it, you get the latest version. This is terrible when you are trying to use some code package in a highly restricted organization.

At any point, I might need to use, e.g. the version of AutoMapper from last October as opposed to what the most recent version is. By having a specific MSI type download, I can always reference that version, whereas with NuGet, unless I’m missing where you can specify a version, you are just stuck with the most recent one.

I really think this is bad for EF 4.2 Beta 1 for easily imagined reasons.

Thanks for the response. Consider me the 8th person reading the AutoMapper blog.
Gravatar
# re: Why do I have to use NuGet?
Justin
8/23/2011 10:42 AM
Generally speaking, I think the reason for this is that it tends to be easier to get a solution working when it contains the exact set of dependencies required stored in source control along with the project. The NuGet model does this, in somewhat of a clumsy way, by checking in the packages folder that it builds.

If you have installed the tool via MSI or the assemblies are in the GAC, that's all well and good for your single machine but makes migrating the project between developer machines and build servers more complicated as it has non-obvious setup requirements.

You have to install the component multiple times across multiple solutions, but you don't have cross solution dependency sharing either (and its associated versioning headaches).
Gravatar
# re: Why do I have to use NuGet?
jdn
8/23/2011 7:06 PM
@Justin

I can understand the dependencies thing, and that's all well and good, but as NuGet packages get updated more frequently, there's still a versioning problem.

Have you ever loaded the Mindspring Web Workbench package (or whatever the heck it is called)? it seems like there is an update once a week on it.

The 'my machine' thing is very easy to handle when you do the standard add a lib folder and add all dlls there and only reference those. Sure, there are manual steps there, but I don't see how NuGet avoids those.
Gravatar
# re: Why do I have to use NuGet?
Raif
11/8/2012 8:44 AM
Jesus, tell me you have found a solution for this. I've just started a new app and find that I"m stuck with whatever the hell nuget wants to give me. Plus there are like 30 packages installed by default. I don't give a good god damn which version of jquery microsoft wants me to use. Get it out of my project.
What about my support libraries I have built over the years? There is nothing wrong with those libraries. Why should I have to crack them open and update all there references to use the ones nuget is giving me?
Very upset. Maybe I'm just a control freak. Maybe I'm the only software developer who has ever been a control freak. Maybe I should get out of .Net and move to the client. Maybe I'm just over reacting.
Gravatar
# re: Why do I have to use NuGet?
jdn
11/8/2012 6:11 PM
"Maybe I'm the only software developer who has ever been a control freak."

I can safely say, without fear of contradiction, that the answer to this is no.
Gravatar
# re: Why do I have to use NuGet?
Claire Streb
7/21/2014 8:27 AM
I agree with those who say using nuget for nightly gets is OK, but only in the development sandbox, in a separate solution. Strict and secure configuration management practices that release to QA/staging/production require building software without any network connection. Every solution I have seen that has embedded nuget has failed for various reasons. I'm not sure if it is embedded out of laziness, or a desire for a quick fix (to stay current and try to meet demanding deadlines), or because it's on the Visual Studio menu (so it must be good, right? lol-wrong), or because the developers were green/naïve.

Post Comment

Title *
Name *
Email
Url
Comment *  
Please add 3 and 4 and type the answer here: