Я хочу загрузить все пакеты 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");