Nous utilisons le processus amélioré Automatic Package Restore pour restaurer les packages NuGet manquants.
Lors de la construction, la boîte de dialogue de restauration apparaît au début du téléchargement à partir des sources du package, ce qui est correct:
Je peux voir que les packages sont en cours de restauration dans le dossier packages, mais il ne termine pas la restauration de tous. J'obtiens le type d'erreur suivant:
Error 10 NuGet Package restore failed for project MyProject: System.InvalidOperationException: Unable to find version '6.0.1' of package 'Newtonsoft.Json'.
at NuGet.PackageHelper.ResolvePackage(IPackageRepository repository, String packageId, SemanticVersion version)
at NuGet.VsEvents.PackageRestorer.RestorePackage(PackageReference package)
at NuGet.VsEvents.PackageRestorer.RestorePackages(String packageReferenceFileFullPath, IFileSystem fileSystem)
at NuGet.VsEvents.PackageRestorer.PackageRestore(ProjectPackageReferenceFile projectPackageReferenceFile).
Est-ce possible parce que j'ai plusieurs sources de package?
NuGet recherche peut-être dans notre source de package privée le 'Newtonsoft.Json', par exemple, et non dans le nuget.org
la source.
Le .nuget/NuGet.config
fichier:
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="private" value="http://privatePackageSource.com/nuget" />
</packageSources>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Nous utilisons Visual Studio 2013 et NuGet 2.8.5.
MODIFIER:
En utilisant Fiddler, j'ai confirmé que NuGet recherche en effet les packages dans la source incorrecte. Il demande les packages suivants à mon référentiel privé.
J'ai également lu cet article et ajouté la section activePackageSource
à la NuGet.config
fichier:
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="private" value="http://privatePackageSource.com/nuget" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Mais cela ne résout pas le problème.
Il était en effet remplacé par le fichier global NuGet.config (C:\Users\UserName\AppData\Roaming\NuGet\NuGet.config). Le redémarrage de Visual Studio a semblé l'effacer.
Pour une raison quelconque, ma clé NuGet.config avait la clé nuget.org désactivée. J'ai vérifié les paramètres de NuGet Package Manager et tout était correct. Redémarré VS2013 et cela a fonctionné. Voici mon NuGet.config qui fonctionne:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
<disabledPackageSources />
<activePackageSource>
<add key="Microsoft and .NET" value="https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/" />
</activePackageSource>
</configuration>
Eu la même erreur, dans mon cas, une commande de restauration de nuget avant de le construire l'a corrigé pour moi