Prior to NuGet, it was common accepted 'best practice' to check-in all external DLLs used on a project. Typically in a Libs
or 3rdParty
directory.
When working with NuGet, am I supposed to check-in the packages
directory, or is there a way for MSBuild to auto download the needed packages from the nuget feed?
Since this question was asked there is now an easy workflow to use NuGet without commiting packages to source control
From your package manager console you need to install the 'NuGetPowerTools':
Install-Package NuGetPowerTools
Then to enable your projects to support pack restore you need to run another command:
Enable-PackageRestore
Now you are ready to commit your code base without the packages folder. The previous command changed your project files so that if packages are missing they get automatically downloaded and added.