Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatic Package Restore: Unable to find version of package

Tags:

We are using the improved Automatic Package Restore process to restore missing NuGet packages.

When building, the Restore dialog pops up as it starts to download from the package sources, which is correct:

Restore Dialog

I can see that the packages are being restored into the packages folder, but it doesn't finish restoring all of them. I get the following kind of errors:

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). 

Could this be because I have multiple package sources?

enter image description here

NuGet may be searching in our private package source for the 'Newtonsoft.Json', for example, and not in the nuget.org source.

The .nuget/NuGet.config file:

<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> 

We are using Visual Studio 2013 and NuGet 2.8.5.

EDIT:

Using Fiddler, I have confirmed that NuGet is indeed searching for the packages in the incorrect source. It is requesting the following packages from my private repository.

I also read this post and added the activePackageSource section to the NuGet.config file:

<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> 

But it doesn't fix the problem.

like image 823
Dave New Avatar asked May 29 '14 08:05

Dave New


People also ask

How do I Install NuGet packages missing?

On the Installed tab, select a package, record its name, then select Uninstall. Switch to the Browse tab, search for the package name, select it, then select Install). For all packages, delete the package folder, then run nuget install .

How do I restore a package in Visual Studio?

Now right click on Solution in Visual and click on open folder in file explorer. Now open packages folder and delete missing packages folder. Open visual studio and just build the solution. all the missing packages will be restore.


2 Answers

It was indeed being overridden by the global NuGet.config file (C:\Users\UserName\AppData\Roaming\NuGet\NuGet.config). Restarting Visual Studio seemed to clear it.

like image 136
Dave New Avatar answered Oct 21 '22 18:10

Dave New


For some reason, my NuGet.config had nuget.org key disabled. I checked the NuGet Package Manger settings and everything was correct. Restarted VS2013 and it worked. Here is my NuGet.config that works:

<?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> 
like image 25
JoshYates1980 Avatar answered Oct 21 '22 19:10

JoshYates1980