【问题标题】:NuGet Prerelease RestrictionsNuGet 预发布限制
【发布时间】:2017-08-12 04:19:39
【问题描述】:

nuget 允许预发布版本修饰符

例如,我正在开发版本 1.0.0,并且可以添加类似的预发布修改器

  • -beta
  • -rc
  • -beta2

但是,如果我尝试设置类似的东西

-nightly20170320191800

失败了

所以我的问题是这个预发布字符串的具体限制是什么

【问题讨论】:

    标签: nuget versioning


    【解决方案1】:

    【讨论】:

    • 谢谢,我已经找到了这些链接。但是,他们没有指出预发行字符串的具体限制。 SemVer 规范声明“字符串必须仅由字母数字加上破折号 [0-9A-Za-z-] 组成。”所以我的“-nightly20170320191800”应该是有效的,但它不是。
    【解决方案2】:

    我想通了:

    我使用的是 nuget 3.3.0,它没有有意义的消息就死了 (Version string invalid)

    nuget 3.5.0 死于 The special version part cannot exceed 20 characters.

    此限制已被删除 (https://github.com/NuGet/Home/issues/2735)

    现在我使用 nuget 4.0.0,它按预期工作。

    所以正确答案是:

    来自 SemVer 规范 2.0 (http://semver.org/)

    预发布版本可以通过在补丁版本之后附加一个连字符和一系列点分隔标识符来表示。标识符必须仅包含 ASCII 字母数字和连字符 [0-9A-Za-z-]。标识符不得为空。数字标识符不得包含前导零。预发布版本的优先级低于相关的普通版本。预发布版本表明该版本不稳定,可能无法满足其相关正常版本所表示的预期兼容性要求。示例:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。

    但是,一些过去的 nuget 版本(最高 3.5.0)增加了额外的长度限制。 4.0.0 版在这方面按照规范的定义工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      相关资源
      最近更新 更多