Me he encontrado con este problema en dos escenarios.
Primero, cuando intento construir mi solución desde la línea de comando usando msbuild.exe. En segundo lugar, cuando intento construir el sln y los proyectos que lo contienen en mi servidor de compilación usando TFS y CI.
Recibo errores alegando que faltan referencias. Al inspeccionar tanto mi directorio de compilación local como el del servidor TFS, veo que la carpeta / packages no se crea y los paquetes nuget no se copian. Seguir las instrucciones que figuran en la respuesta de Alexandre http://nuget.codeplex.com/workitem/1879 tampoco me funcionó.
He habilitado Restaurar paquetes a través de VS2010 y he visto que las compilaciones solo funcionan desde VS2010. Nuevamente, el uso de msbuild falla. Mi solución probablemente sea totalmente inválida, pero para mi entorno esto funcionó desde una compilación de línea de comando localmente, así como desde una compilación de CI en TFS.
Entré en. \ Nuget y cambié esta línea en el archivo .nuget \ NuGet.targets:
de:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>
a: (aviso, sin las comillas alrededor de las variables)
<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>
Entiendo que si mis directorios tienen espacios en ellos, esto fallará, pero no tengo espacios en mis directorios, por lo que esta solución consiguió que mis compilaciones se completaran con éxito ... por el momento.
Diré que activar el registro de nivel de diagnóstico en su compilación ayudará a mostrar qué comandos está ejecutando msbuild. Esto es lo que me llevó a hackear el archivo de objetivos temporalmente.