如何使用官方C# SDK获取NuGet包的Release Notes
提取NuGet包元数据中的Release Notes
你可以直接通过IPackageSearchMetadata接口的ReleaseNotes属性获取发布说明,这是NuGet官方SDK提供的原生属性。修改你的代码如下:
using NuGet.Common; using NuGet.Protocol; using NuGet.Protocol.Core.Types; using NuGet.Versioning; ILogger logger = NullLogger.Instance; CancellationToken cancellationToken = CancellationToken.None; SourceCacheContext cache = new SourceCacheContext(); SourceRepository repository = Repository.Factory.GetCoreV3("https://api.nuget.org/v3/index.json"); PackageMetadataResource resource = await repository.GetResourceAsync<PackageMetadataResource>(); IEnumerable<IPackageSearchMetadata> packages = await resource.GetMetadataAsync( "Flexygo", includePrerelease: true, includeUnlisted: false, cache, logger, cancellationToken); // 遍历每个包版本,提取Release Notes foreach (var package in packages) { Console.WriteLine($"版本: {package.Identity.Version}"); // 处理发布说明为空的情况 string releaseNotes = package.ReleaseNotes ?? "无发布说明"; Console.WriteLine($"发布说明:\n{releaseNotes}\n"); }
关键说明
IPackageSearchMetadata包含包的完整元数据,ReleaseNotes属性直接对应NuGet包中存储的发布说明文本- 部分包可能未填写Release Notes,建议通过空值检查避免空引用异常
- 若仅需特定版本的发布说明,可先筛选出对应版本的
IPackageSearchMetadata实例再读取属性
内容的提问来源于stack exchange,提问作者Victor Tercero
相关产品推荐
相关产品推荐

