Nuget.Core下载所有Nuget软件包身份验证失败

时间:2018-09-24 15:56:22

标签: c# nuget nuget-server

我想从私有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为我的私人nuget供稿生成了ApiKey。 如何将ApiKey放入代码中-例如,在var repo = PackageRepositoryFactory.Default .CreateRepository(repositoryPath);上看不到任何可能性。

所以我认为我的问题是缺少ApiKey,但是也许我使用了错误的身份验证InitializeCredentials

编辑: 所以我现在确定-不能是ApiKey-但是我想念的是什么?

编辑: 我正在这样调用我的方法:

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

0 个答案:

没有答案