3 votes

Impossible de restaurer les paquets nuget dans Visual Studio for Mac & dotnet core avec un internet lent (Bolivie)

J'ai des problèmes pour restaurer des paquets pour un projet dotnet core 2.0 ici en Bolivie. Chez moi, aux Pays-Bas, je n'ai aucun problème pour restaurer les paquets, mais ici, ça ne marche pas.

Je reçois beaucoup d'erreurs comme :

Failed to download package 'System.Linq.4.1.0' from
'https://api.nuget.org/v3-flatcontainer/system.linq/4.1.0/system.linq.4.1.0.nupkg'.
An error occurred while sending the request
  Error: SecureChannelFailure (Unable to write data to the transport connection: Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'..)
  Unable to write data to the transport connection: Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'..
  Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'.
Unable to load package 'System.Linq'.

Lorsque j'essaie de télécharger ce fichier, j'obtiens entre 400 KB/s et 3 MB/s.

Je pense que c'est nuget qui restaure les paquets en parallèle et que c'est ce qui fait que l'internet de l'auberge est complètement utilisé ? J'ai essayé dans différentes auberges/cafés ici, et j'ai les mêmes problèmes. Lorsque je me connecte à distance à mon serveur personnel aux Pays-Bas et que je restaure les paquets pour le même projet, tout se passe bien.

Quelles sont les possibilités qui s'offrent à moi ? J'ai essayé de chercher ce problème sur Google pendant un certain temps, mais je n'ai pas encore trouvé de solution.

Merci de votre attention !

Jorik

5voto

Matt Ward Points 7456

Je ne peux pas vous aider pour le problème de réseau, mais vous pouvez peut-être réduire le nombre de paquets NuGet téléchargés par Visual Studio pour Mac. Cela peut être fait pour un projet .NET Core 2.0 en utilisant le dossier de secours NuGet :

/usr/local/share/dotnet/sdk/NuGetFallbackFolder/

Le dossier fallback contient de nombreux paquets NuGet qui sont utilisés par défaut par .NET Core 2.0. Ce dossier doit être créé si vous installez le SDK .NET Core.

L'utilisation du dossier ci-dessus empêchera le téléchargement d'un grand nombre de paquets NuGet.

Vous pouvez l'ajouter directement en tant que source de paquet NuGet ou éditer votre fichier ~/.config/NuGet/NuGet.Config et ajouter le dossier de repli comme suit :

Vous pouvez également ajouter un dossier de repli explicite dans votre fichier ~/.config/NuGet/NuGet.Config :

<fallbackPackageFolders>
  <add key="DotNetCore2FallbackFolder" value="/usr/local/share/dotnet/sdk/NuGetFallbackFolder" />
</fallbackPackageFolders>

Visual Studio pour Mac doit être redémarré. Vérifiez également que le dossier existe.

Notez qu'en raison d'un autre bogue, Visual Studio pour Mac téléchargera encore quelques paquets NuGet lors de la restauration d'un projet .NET Core.

2voto

Leo Liu-MSFT Points 21360

Quelles sont les possibilités qui s'offrent à moi ? J'ai essayé de chercher ce problème sur Google pendant un certain temps, mais je n'ai pas encore trouvé de solution.

Il est évident que la raison de cette erreur est un problème de réseau, mais, comme Matt l'a dit, nous ne pouvons pas vous donner beaucoup d'aide pour le problème de réseau. J'aimerais vous proposer une autre solution :

Comme nuget restaure par défaut les paquets à partir du cache de paquets local, vous pouvez restaurer les paquets avec succès sur votre serveur domestique aux Pays-Bas :

Vous pouvez copier ces paquets depuis votre serveur domestique et les ajouter au cache local des paquets. C:\Users\username\.nuget\packages à votre machine en Bolivie.

J'espère que cela vous aidera.

0voto

Pepper Points 64

Vous pouvez également essayer de désactiver la restauration de plusieurs paquets en parallèle avec l'argument Nuget -DisableParallelProcessing.

voir ici : https://docs.microsoft.com/en-us/nuget/tools/cli-ref-restore

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X