Ошибка TFS 2015 при попытке восстановить пакеты из частного канала - PullRequest
1 голос
/ 02 марта 2020

У нас есть локальная TFS 2015 сборка. Недавно мы добавили ссылку на сторонний пакет. Я добавил шаг nuget restore build в наш конвейер сборки перед шагом MSBUILD для восстановления пакета.

enter image description here

Вот задача nuget restore сборки

enter image description here

Вот MSBUILD step

enter image description here

Я получаю следующее сообщение об ошибке:

Failed to retrieve information about 'myPrivatePackage' from remote source 'https://nuget.myPrivatePackage.com/nuget/FindPackagesById()?id='myPrivatePackage'&semVerLevel=2.0.0'.
The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

Вот журнал вывода сборки .

enter image description here

ОБНОВЛЕНИЕ

Вот подробный вывод журнала сборки TFS из шага восстановления nuget.

Task "RestoreTask"
         (in) RestoreGraphItems Count '19'
         (in) RestoreDisableParallel 'False'
         (in) RestoreNoCache 'True'
         (in) RestoreIgnoreFailedSources 'False'
         (in) RestoreRecursive 'True'
         (in) RestoreForce 'False'
         (in) HideWarningsAndErrors 'False'
         (in) RestoreForceEvaluate 'False'
         Running restore with 4 concurrent jobs.
         Reading project file E:\TfsData\Build\_work\4\s\OscarWeb\OscarWeb.csproj.
         Reading project file E:\TfsData\Build\_work\4\s\OscarWeb\OscarWeb.csproj.
         Persisting no-op dg to E:\TfsData\Build\_work\4\s\OscarWeb\obj\OscarWeb.csproj.nuget.dgspec.json
         Restoring packages for E:\TfsData\Build\_work\4\s\OscarWeb\OscarWeb.csproj...
         Restoring packages for E:\TfsData\Build\_work\4\s\OscarWeb\OscarWeb.csproj...
         Restoring packages for .NETCoreApp,Version=v2.2...
         Restoring packages for .NETCoreApp,Version=v3.1...
           GET https://www.nuget.org/api/v2/FindPackagesById()?id='BuildBundlerMinifier'&semVerLevel=2.0.0
           GET https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.VisualStudio.Web.CodeGeneration.Tools'&semVerLevel=2.0.0
         Retrying 'FindPackagesByIdAsyncCore' for source 'https://nuget.telerik.com/nuget/FindPackagesById()?id='BuildBundlerMinifier'&semVerLevel=2.0.0'.
         The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

Есть идеи, что вызывает ошибку и как ее исправить?

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Мне удалось заставить это работать, используя команду dotnet restore вместо nuget restore.

dotnet restore "MyProject.csproj"  --configfile "nuget.config" --verbosity detailed --packages "rootfolder\packages" --no-cache

Мои сторонние пакеты теперь корректно восстанавливаются как часть конвейера сборки.

1 голос
/ 03 марта 2020

По вашему скриншоту. Одна проблема, которую я заметил, заключается в том, что задача MSBuild вообще выполняет восстановление. Это не должно Позвольте задаче Nuget выполнить восстановление NuGet.

Предложите go Расширенные параметры для задачи сборки и снимите флажок "Восстановить пакеты NuGet" или, если есть какой-то другой способ, вы вызываете восстановление NuGet во время хода сборки, который off.

Если этого не сделать, также установите для переменной system.debug=true значение Включить подробный режим отладки для TFS Build vNext . Который может предоставить более подробную информацию для устранения неполадок.

...