Я столкнулся с этой проблемой в двух случаях.
Во-первых, когда я пытаюсь построить свое решение из командной строки, используя msbuild.exe.Во-вторых, когда я пытаюсь собрать sln и содержащие проекты на моем сервере сборки, используя TFS и CI.
Я получаю ошибки, утверждая, что ссылки отсутствуют.При проверке моего локального каталога сборки и сервера TFS я вижу, что папка / packages не создается, а пакеты nuget не копируются.Следование инструкциям, приведенным в ответе Александра http://nuget.codeplex.com/workitem/1879, также не сработало для меня.
Я включил восстановление пакетов через VS2010 и видел, что сборки работают только из VS2010.Опять же, использование msbuild fails.Мой обходной путь, вероятно, совершенно недопустим, но для моей среды это все работало как из сборки командной строки локально, так и из сборки CI в TFS.
Я вошел в. \ Nugetи изменил эту строку в файле .nuget \ NuGet.targets:
с:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>
на: (обратите внимание, без кавычек вокруг переменных)
<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>
Я понимаю, что если в моих каталогах есть пробелы, это не получится, но у меня нет пробелов в моих каталогах, и поэтому этот обходной путь позволил моим сборкам завершиться успешно ... на данный момент.
Я скажу, что включение регистрации уровня диагностики в вашей сборке поможет показать, какие команды выполняются msbuild.Это то, что заставило меня временно взломать файл целей.