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:
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?
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.
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 .
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.
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.
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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With