Nuget.Core Загрузка всех Nuget-пакетов Аутентификация не удалась - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу загрузить все пакеты Nuget из частного канала Nuget, но моя аутентификация не удалась.

public void DownloadPackages(string repositoryPath, string directoryPath)
{
    var repo = PackageRepositoryFactory.Default
        .CreateRepository(repositoryPath);

    var allPackages = repo.GetPackages();

    foreach (var package in allPackages)
    {
        var fileName = Path.ChangeExtension(Path.Combine(directoryPath, package.GetFullName()), ".nupkg");
        Console.WriteLine($"Downloading {package.GetFullName()}");
        try
        {
            using (var stream = package.GetStream())
            {

                using (var fileStream = File.Create(fileName))
                {
                    stream.CopyTo(fileStream);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error while downloading {package.GetFullName()}: {ex.Message}");
        }
    }
}

public void InitializeCredentials(string url, string userName, string password)
{
    var credentials = new NetworkCredential(userName, password);
    CredentialStore.Instance.Add(new Uri(url), credentials);
}

Я инициализирую свои учетные данные следующим образом: InitializeCredentials.Но он все равно выдает мне ошибку 401 с сервера.

Я видел, что visual studio сгенерировала ApiKey для моего частного нуг-фида.Как я могу поместить мой ApiKey в свой код - например, я не вижу возможности на var repo = PackageRepositoryFactory.Default .CreateRepository(repositoryPath);.

Так что я думаю, что моя проблема в пропущенном ApiKey, но, возможно, я использую неправильную аутентификацию InitializeCredentials?

РЕДАКТИРОВАТЬ: Так что я теперь уверен - это не может быть ApiKey - но что мне не хватает?

РЕДАКТИРОВАТЬ: Я называю свои методы так:

var helper = new PackageHelper();
helper.InitializeCredentials("User","Password");
helper.DownloadPackages("NuGetUrl", "MyLocalFolder");
...