【问题标题】:.Net AssemblyName.version Build versus Revision.Net AssemblyName.version 构建与修订
【发布时间】:2011-03-17 19:01:46
【问题描述】:

MSDN 文档指出:

版本号由 2 到 4 组成 组件:主要、次要、构建和 修订。主要和次要 需要组件;构建和 修订组件是可选的,但 构建组件是必需的,如果 修订组件已定义。全部 定义的组件必须是整数 大于或等于 0。

版本号的格式为 如下(显示可选组件 在方括号([ 和 ])中: major.minor[.build[.revision]] 组件按惯例用作 如下:

  • 主要:同名程序集 但不同的主要版本不是 可互换。更高版本 数字可能表示重大重写 落后的产品 不能假设兼容性。

  • Minor:如果名称和专业 两个程序集的版本号是 相同,但次要版本号 不同,这表明 显着增强与 向后兼容的意图。 这个较高的次要版本号可能 表示产品的点发布 或完全向后兼容的新 产品的版本。

  • 内部版本:内部版本号不同 表示相同的重新编译 资源。不同的内部版本号可能 当处理器、平台、 或编译器更改。

  • 修订:具有相同的程序集 名称、主要和次要版本号 但打算进行不同的修订 可以完全互换。更高的 修订号可能用于 修复一个安全漏洞的构建 以前发布的程序集。

程序集的后续版本 仅因构建或修订而不同 数字被认为是修补程序 旧版本的更新。

我的问题是关于此上下文中“构建”和“修订”这两个术语的含义

在我看来,一般来说,当源代码发生变化时,我们会“构建”。因此,“build 678”和“build 679”是不同的恰好,因为源在某些方面是不同的——通常是由于签入了一些更改的源。在我看来,.NET 定义使用“修订”的方式与通常使用“构建”的方式相同。

有人在他们的版本控制中使用上述定义吗?如果是这样,你能举出具体的例子来说明你为什么这样做吗?

【问题讨论】:

    标签: c# .net build-process versioning


    【解决方案1】:

    程序集的后续版本仅在内部版本或修订号上有所不同,被视为先前版本的修补程序更新。

    本节解释了不同之处。当您的产品已发布并且您需要在已进行更新的同时对发布的版本进行修复时,将使用该修订版。

    例如 1.1.10.0 船。我正在对功能进行小幅更改,当我收到需要修复的安全警报时,我在 1.1.20.0。我不能将 1.1.10.0 增加到 1.1.11.0,因为它代表其他东西。所以我使用 1.1.10.1 来识别它是 1.1.10.0 代码的修订版。

    希望这比泥浆更清晰一点。还要记住公司的规模以及他们发布这些定义的软件项目的规模。

    【讨论】:

    • 只是要清楚,当您使用修订版时-内部版本号是您正在修订的内部版本号,而不是修订版的内部版本...这就是可能导致我感到沮丧的原因...
    【解决方案2】:

    我完全同意你的看法。除非您用一点盐来解释它们,否则给定的描述没有多大意义。对我来说,最后一个版本号应该表示 build,即每次编译时更新的版本号。其他数字代表软件/API 的不同程度的变化。

    在实践中,这就是通常使用版本号的方式。 (当然,我如何使用它们。)

    • 主要 - 当软件的功能集/API 发生重大变化时增加

    • 次要 - 在进行显着更改、较小的 API 更改或添加新功能时增加

    • 构建 - 进行微小更改时增加,通常是错误修复和改进(尽管没有 API 更改)

    • 修订版 - 代表构建实例的唯一 ID/编号

    【讨论】:

    • 对不起,你能完成回复吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多