已成功上传MyGet包但未在Feed中显示的问题求助
问题描述
我已经连续数周成功向个人公开MyGet Feed推送包,上次成功推送是4天前的Monday 10th。
今日我用相同方法向多个Feed推送了十几个不同的包,所有推送都返回201 Created成功状态;重复推送同一版本时返回409 Conflict,说明包已在服务器创建。
但这些包既无法通过CLI搜索或MyGet UI在Feed中找到,MyGet的Feed活动记录里也没有相关内容,最后一条记录还是Monday 10th的推送。
我执行了以下命令:
nuget list Template -PreRelease -IncludeDelisted -AllVersions -source https://www.myget.org/F/tr-public/api/v3/index.json
结果只能看到之前已存在的包Template.TestedLibrary。
我已确认所有包均有效:本地文件夹引用生成的制品、通过本地包源创建模板、安装依赖等操作都正常。
目前构建、打包、推送流程均正常,包有效且服务器提示已存在,但就是无法在任何搜索结果中显示。
更新:我也通过MyGet UI手动上传包,显示成功提示,但包仍未出现在Feed中;再次上传时同样提示包已存在。
请问可能是什么原因导致此问题?
可能的原因及排查方向
- Feed索引延迟:MyGet推送大量包后,服务器需要时间完成索引同步,存在延迟是常见情况。可等待1-2小时后重新搜索,也可查看MyGet官方状态页确认是否有服务异常。
- 包索引逻辑异常:即便使用了
-IncludeDelisted参数,仍可能存在索引逻辑问题导致已存在的包无法被搜索返回。可尝试用nuget show <包名称> -source <你的Feed地址>命令直接查询包详情,验证服务器是否真的存储了该包。 - Feed权限配置问题:检查Feed的权限设置,确认当前账号拥有该Feed的读取权限,避免公开Feed被意外设为私有,或者存在访问控制列表(ACL)限制导致无法读取。
- 包元数据不规范:MyGet对包的元数据有校验规则,若新推送包的ID格式、版本号规范等不符合要求,可能推送成功但无法被索引。对比已正常显示的
Template.TestedLibrary包的元数据,排查新包的差异。 - 服务器缓存或Feed故障:服务器端缓存未更新,或特定Feed出现后台异常,都可能导致包无法显示。可联系MyGet支持团队,提供Feed地址和推送的包信息,请求后台排查。
- 搜索命令适配问题:若推送的是模板类包,
nuget list命令可能默认未覆盖该类型。可尝试访问Feed的Flat Container API端点直接查看包列表,或调整搜索参数进行精准查询。
内容的提问来源于stack exchange,提问作者Tristan Rhodes
相关产品推荐
相关产品推荐

