web-dev-qa-db-fra.com

Jenkins - Exécuter une restauration de paquet NuGet pour générer ce fichier

Lorsque je crée la bibliothèque .NET Standard 2.0 sur le serveur de génération Jenkins

C:\Program Files\dotnet\sdk\2.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file 'C:\Jenkins\workspace\<Project>\Sources\Library\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [C:\Jenkins\workspace\<Project>\Sources\Library\Library.csproj]

J'ai une erreur ci-dessus dans le journal de construction.

J'ai cherché une erreur et j'ai trouvé solution

Cependant, 

dotnet resotre <Solution Name>

la solution ne m'aide pas lorsque je nettoie mon espace de travail avant le début de la génération.

Par conséquent, j'insère une commande avant MSBuild mais j'ai échoué avec 

C:\Program Files\dotnet\sdk\2.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error : Package Microsoft.CodeAnalysis.CSharp.Workspaces, version 2.8.0 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [C:\Jenkins\workspace\<Project>\Sources\Web\Web.csproj]

Selon La référence de la solution , peut-être une mise à niveau Nuget Package Installer pourrait m'aider. Mais je ne sais pas comment puis-je mettre à jour Nuget Package Installer par ligne de commande ...

3
ibocon

J'ai eu le même problème, obtenant la même erreur:

error : Package <package> was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [<path>]

J'ai pu le résoudre en utilisant MSBuild /t:restore au lieu de dotnet restore.

Voir: https://docs.Microsoft.com/en-us/nuget/reference/msbuild-targets#restore-target

3
Mat

UPDATE: Il convient de mentionner que les problèmes de Jenkins sont discutés en profondeur dans cet autre answer .

Le conseil de @Mat n'a pas fonctionné pour moi: le /t:restore n'est actuellement pas en mesure de restaurer les paquets de nuget pour les projets utilisant package.config, car je mentionne ici . Ce qui a fonctionné pour moi est le suivant:

call "%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
nuget restore CodeBinder.sln
MSBuild Solution.sln /p:Configuration=Release /p:Platform="Any CPU" /t:build /restore
pause

Il faut essentiellement télécharger la CLI du nuget à partir du site officiel [1], section Windows x86 Commandline. Le commutateur /restore, comme indiqué par ici , a corrigé l’erreur de restauration Nuget partiellement terminée, de la même manière que MSBuild /t:restore, mais elle peut être effectuée conjointement avec /t:build.

[1] https://www.nuget.org/downloads

0
ceztko