我在NuGet.Core v2中发现了一些提示,但我不知道如何在NuGet v3中实现。该库已大量重构,v2方法不起作用。另一个重要的事情是,我正在尝试从托管v2的私有NuGet服务器读取程序包元数据。这是读取元数据的代码。
PackageSource packageSource = new PackageSource(PackageSource);
SourceRepository sourceRepository = new SourceRepository(packageSource, Repository.Provider.GetCoreV3());
PackageMetadataResource packageMetadataResource = sourceRepository.GetResourceAsync<PackageMetadataResource>().Result;
var logger = new MSBuildLogger(Log);
List<IPackageSearchMetadata> searchMetadata = packageMetadataResource.GetMetadataAsync(PackageId, true, true, null, logger, CancellationToken.None).Result.ToList();
此代码从服务器返回401错误代码。看起来该解决方案应该以某种方式与将HttpHandlerResourceV3.CredentialService属性设置为直接或间接使用Settings.LoadDefaultSettings(null)的东西有关,但我无法提出一个完整的解决方案,并且我怀疑它是否可以用于访问NuGet v2服务器。有人可以举例说明如何使代码使用默认设置和凭据吗?
谢谢