Ответ 1
Это действительно было переопределено глобальным файлом NuGet.config(C:\Users\UserName\AppData\Roaming\NuGet\NuGet.config). Перезапуск Visual Studio, казалось, очистил его.
Мы используем улучшенный процесс Automatic Package Restore для восстановления отсутствующих пакетов NuGet.
При построении открывается диалоговое окно "Восстановление", когда оно начинает загружаться из источников пакета, что является правильным:
Я вижу, что пакеты восстанавливаются в папке пакетов, но не завершают их восстановление. Я получаю следующие ошибки:
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).
Может ли это быть потому, что у меня есть несколько источников пакетов?
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>
Но проблема не устраняется.
Это действительно было переопределено глобальным файлом NuGet.config(C:\Users\UserName\AppData\Roaming\NuGet\NuGet.config). Перезапуск Visual Studio, казалось, очистил его.
По какой-то причине у моего 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>
Если у меня такая же ошибка, в моем случае команда восстановления nuget перед созданием исправила это для меня