You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NuGet是否存在官方整合包名与版本的单字符串包标识符?

NuGet 官方单字符串包标识规范

NuGet 官方有全工具链统一支持的单字符串包标识标准格式:{PackageId}/{Version},用正斜杠分隔包ID(即常说的包名)与版本号。

普通开发者查阅的公开文档大多把包ID、版本作为两个独立参数讲解,所以很少单独提及这个单字符串格式,但它是NuGet官方API、CLI工具、本地存储逻辑统一遵循的公开约定,不是内部私有实现。

格式规则

  • 包ID部分遵循NuGet通用规则:大小写不敏感,支持.、-、_、@等合法字符,匹配校验时不区分大小写
  • 版本号部分支持所有合法NuGet版本格式,覆盖SemVer 2.0正式版、预发布后缀、构建元数据等写法
  • 合法示例:
    • Newtonsoft.Json/13.0.3
    • Microsoft.Extensions.DependencyInjection/8.0.0
    • NLog/5.3.0-beta.2

常见使用场景

这个格式在NuGet生态内应用非常普遍:

  • NuGet V3服务API的包元数据查询、包内容下载请求路径,均使用该格式拼接包标识
  • 本地全局NuGet包缓存的目录结构,严格按照包ID/版本号/的层级存储解压后的包文件
  • dotnet nuget why、nuget.exe list -allversions等官方CLI命令的默认输出,都采用该格式展示包的完整身份信息

非官方格式说明

NuGet官方目前没有适配其他包管理生态常用的分隔符写法:

  • 不支持npm风格的@分隔:@本身是NuGet包ID的合法字符,用它做分隔符会产生解析歧义
  • 不支持pip风格的==、Maven风格的:分隔:这类写法仅在部分第三方依赖管理工具中做了兼容适配,不属于官方规范,无法保证在所有官方工具、API链路中正常解析。

内容的提问来源于stack exchange,提问作者Jonathan T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 00:45:38