Подтвердить что ты не робот

Автоматическое восстановление пакетов: невозможно найти версию пакета

Мы используем улучшенный процесс Automatic Package Restore для восстановления отсутствующих пакетов NuGet.

При построении открывается диалоговое окно "Восстановление", когда оно начинает загружаться из источников пакета, что является правильным:

Restore Dialog

Я вижу, что пакеты восстанавливаются в папке пакетов, но не завершают их восстановление. Я получаю следующие ошибки:

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

Может ли это быть потому, что у меня есть несколько источников пакетов?

enter image description here

NuGet может искать в нашем частном исходном пакете для "Newtonsoft.Json", например, а не в источнике nuget.org.

Файл .nuget/NuGet.config:

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

Мы используем Visual Studio 2013 и NuGet 2.8.5.

EDIT:

Используя Fiddler, я подтвердил, что NuGet действительно ищет пакеты в неправильном источнике. Он запрашивает следующие пакеты из моего личного репозитория.

Я также прочитал этот пост и добавил раздел activePackageSource в файл NuGet.config:

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

Но проблема не устраняется.

4b9b3361

Ответ 1

Это действительно было переопределено глобальным файлом NuGet.config(C:\Users\UserName\AppData\Roaming\NuGet\NuGet.config). Перезапуск Visual Studio, казалось, очистил его.

Ответ 2

По какой-то причине у моего NuGet.config был отключен ключ nuget.org. Я проверил настройки NuGet Package Manger, и все было правильно. Перезагрузился VS2013, и он сработал. Вот мой NuGet.config, который работает:

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

Ответ 3

Если у меня такая же ошибка, в моем случае команда восстановления nuget перед созданием исправила это для меня