VSTS - System.InvalidOperationException: Невозможно определить папку для восстановления пакетов NuGet.Укажите либо -PackagesDirectory, либо -SolutionDirectory - PullRequest
0 голосов
/ 25 августа 2018

У меня есть решение Visual Studio 2017, которое включает в себя 2 проекта. Один проект использует .NET 4.7.1. Другой проект использует .NET Core. Я заинтересован в автоматизации сборки моего проекта .NET 4.7.1 в VSTS. Однако в настоящее время моя сборка завершается с ошибкой, которая говорит:

The nuget command failed with exit code(1) and error(System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory.
   at NuGet.CommandLine.RestoreCommand.GetPackagesFolder(PackageRestoreInputs packageRestoreInputs)
   at NuGet.CommandLine.RestoreCommand.<PerformNuGetV2RestoreAsync>d__35.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.CommandLine.RestoreCommand.<ExecuteCommandAsync>d__30.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at NuGet.CommandLine.Command.Execute()
   at NuGet.CommandLine.Program.MainCore(String workingDirectory, String[] args)
---> (Inner Exception #0) System.InvalidOperationException: Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory.
   at NuGet.CommandLine.RestoreCommand.GetPackagesFolder(PackageRestoreInputs packageRestoreInputs)
   at NuGet.CommandLine.RestoreCommand.<PerformNuGetV2RestoreAsync>d__35.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.CommandLine.RestoreCommand.<ExecuteCommandAsync>d__30.MoveNext()<---)
Packages failed to restore

Эта ошибка возникает во время первой задачи в моем конвейере сборки VSTS. Эта задача определяется следующими свойствами:

Command: restore
Path to solution, packages.config, or project.json: MyNet471Project/MyNet471Project.csproj
Feeds to use: Feed(s) I select here - <My Private NuGet repo>
Disable local cache is not checked

Я не понимаю, почему я получаю эту проблему. Чего мне не хватает?

Обновление Примечательно, что я удалил каталог «packages» на уровне решения и каталог «bin» на моем локальном компьютере. Когда я перестраиваю решение в Visual Studio, Visual Studio автоматически получает пакеты и успешно собирает.

Однако, если я запускаю nuget restore MyNet471Project/MyNet471Project.csproj из командной строки, я получаю ошибку, аналогичную той, которую я вижу в VSTS. Ошибка в командной строке говорит:

Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory.

Что запускает Visual Studio для автоматического восстановления пакетов?

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Я добавил значение в свойство "Каталог назначения", и оно заработало!

0 голосов
/ 26 августа 2018

Из сообщения об ошибке похоже, что нет файла packages.config или project.json, в котором находится MyNet471Project.csproj.

В поле Path to solution, packages.config, or project.json: попробуйте указать путь к packages.config илиproject.json файл, а не MyNet471Project.csproj, или укажите путь к решению, в котором packages.config существует в той же папке.

...