我想从私有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");