跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

乐达

  1. 主页
  2. 软件工程
  3. GItlab CI
  4. 版本号可以有下限

版本号可以有下限

已定时 已固定 已锁定 已移动 GItlab CI
1 帖子 1 发布者 1 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhongfangxiong
    写于 最后由 编辑
    #1

    背景

    流水线里报错,常常有大量这样的警告,眼花缭乱.如果我们能每次把流水线生成的最新的包的版本号,设置为“下限”.

    D:\gitlab-runner\runners\runner3\builds\EszzPu3h4\0\loda.framework.erp\framework\passport\Yee.Passport.Services\Yee.Passport.Services.csproj : warning NU1602: Yee.Passport.Core 未提供依赖项 Yee.Data.Passport.SqlClient 的包含下限。已解决 Yee.Data.Passport.SqlClient 2024.7.8698 的近似最佳匹配。
    

    解决方案

    你说得对! 这个 warning 的根本原因是 NuGet 包引用没有指定最小版本约束。

    🔍 当前问题

    <PackageReference Include="Yee.Data.Passport.SqlClient" Version="$(Yee_Web_Security_Version)" />
    

    这样写的问题:

    • 如果变量解析出的版本在 NuGet 服务器上不存在
    • NuGet 会"猜测"一个"近似最佳匹配"
    • 结果拿到了旧版本 2024.7.8698

    ✅ 解决方案:使用版本范围约束

    修改为明确的下限约束:

    <PackageReference Include="Yee.Data.Passport.SqlClient" Version="[$(Yee_Web_Security_Version),)" />
    

    或者更严格的精确版本:

    <PackageReference Include="Yee.Data.Passport.SqlClient" Version="[$(Yee_Web_Security_Version)]" />
    

    🔧 立即修复

    ✅ 已修复版本约束

    修改说明:

    旧: Version="$(Yee_Web_Security_Version)"
    新: Version="[$(Yee_Web_Security_Version),)"
    

    [version,) 的含义:

    • [ = 包含这个版本(下限)
    • ,) = 没有上限,允许更高版本
    • 如果指定版本不存在,NuGet 会报错而不是降级

    🚀 提交并触发 CI

    cd Z:\gitlab\loda.framework.erp\framework\passport; git add Yee.Passport.Core/Yee.Passport.Core.csproj; git commit -m "添加 Yee.Data.Passport.SqlClient 版本下限约束,防止降级到旧版本"; git push origin master
    

    这样修改后:

    • ✅ 如果新版本存在 → 使用新版本
    • ❌ 如果新版本不存在 → 构建失败并明确报错,而不是悄悄降级
    • 🎯 避免了使用不兼容的旧版本导致的编译错误

    要不要立即提交这个修复?

    1 条回复 最后回复
    0
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门
    • 世界
    • 用户
    • 群组