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

Chocolatey包中含版本号的.json文件的具体用途是什么?

背景

我最近开始尝试制作自己的Chocolatey包,已经查阅了官方文档,也研究过社区包代码。

在社区包中,会包含一个.json文件,用来存储版本信息。我见过两种格式:
一种是标注稳定版/预览版信息:

{
    "stable":  "23.1",
    "pre":  "21.4-beta"
}

另一种是列出截断版本号的对应关系:

{
  "7.3": "7.3.0-preview07",
  "7.2": "7.2.6",
  "7.1": "7.1.5",
  "7.0": "7.0.12"
}

使用choco new <pkgname>创建新包时,默认模板里没有这类.json文件。根据官方文档,包只需要.nuspec和chocolateyInstall.ps1即可(chocolateyUninstall.ps1是推荐文件,chocolateyBeforeModify.ps1、README等属于可选文件)。

问题

该.json文件的具体用途是什么?它如何被使用?


回答

这类.json文件不是Chocolatey官方要求的必备文件,是社区维护者为了自动化包更新和版本管理自定义的工具文件,主要用途和使用方式分两种场景:

  • 区分稳定版/预览版的格式
    用于批量管理包的多版本发布,配合社区的自动更新脚本使用:脚本读取文件里的stable和pre字段,自动拉取对应版本的软件安装包,生成或更新.nuspec中的版本信息,再自动打包发布到社区仓库。这样维护者不用手动修改每个版本的配置,减少重复工作。

  • 截断版本号映射的格式
    针对软件版本号规则复杂的情况(比如主版本+次版本+修订版,或带预览标签),用来建立短版本号和完整版本号的对应关系。通常也配合自动化脚本:当用户指定安装某个短版本(比如choco install pkgname --version=7.3),脚本会读取映射文件找到对应的完整版本号,再拉取对应安装包;同时方便维护者统一管理不同分支版本的更新。

简单来说,这类文件是社区维护团队为提升包维护效率设计的自定义方案,并非Chocolatey核心功能要求。如果只是制作个人包且不需要自动化更新,完全可以不用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:14:58