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