.net - .NET 程序集版本号
问题描述
.NET API 的文档说完整版本号由四个部分组成:
少校_ 未成年人。建立. 修订,其中
Build:内部版本号的差异表示对相同源的重新编译。当处理器、平台或编译器发生变化时,可能会使用不同的内部版本号。
修订版:具有相同名称、主要和次要版本号但不同修订版的程序集旨在完全互换。在修复先前发布的程序集中的安全漏洞的构建中,可能会使用更高的修订号。
因此,就Semantic Versioning 2.0.0而言,修订版似乎对应于PATCH版本,并且build映射到build metadata。因此,版本 1.2。.4 晚于 1.2。.3 因为它们具有相同的主要和次要数字,但 1.2。.4修复了先前发布的组件中的安全漏洞。x
y
x
但是在 ClickOnce 部署的情况下,该声明不正确。以下步骤将成功完成:
- 使用 Visual Studio 创建一个空的 Windows 窗体应用程序。
- 转到项目属性中的发布选项卡并指定发布文件夹位置。
- 将版本号设置为
1.2.3.4
. - 单击立即发布按钮。
- 将版本更改为
1.2.4.3
. - 单击立即发布按钮。
但是,如果您交换步骤 3 和 5,它会重现以下警告:
已发布的 1.2.4.3 版本将被旧版本 (1.2.3.4) 取代。
因此,如果版本号的构建值不同,则忽略修订值。此外,它断言版本 1.2.4.3 比 1.2.3.4 更新。
方法文档Version.CompareTo
确认了这种行为:
Version
按重要性降序排列的组件 是:主要、次要、构建和修订。
但是,如果我重建旧的修补程序提交的主要和次要等于最新版本的相同部分,那会是什么?CI/CD 构建计数器值将增加。因此,最新版本将比最新版本“旧”。
另一个例子是对 CI/CD 构建计数器使用模数来限制 构建值。之后UInt16.MaxValue-1
计数器将“重置”为0
。因此,如果未更改主要和次要版本,它将产生一个比以前“旧”的版本。
因此,我怀疑是否应该使用文档中指定的版本号格式。使用major的可能后果是什么 ?未成年人。修订。而是建造?是否可以要求 Microsoft 进行文档审查?
解决方案
推荐阅读
- google-apps-script - 获取 Google 表单中所有部分的列表或从每个响应中获取该属性?
- json - 通过名为 release-date 的子键在 python 中对 json 进行排序
- c# - System.Text.Json JsonElement.GetProperty() KeyNotFoundException
- sql - 在 Select 查询中使用 TOP 和条件
- javascript - html两个表相同的列宽
- c - 最小的 PIC32 程序很大
- mysql - 多维数组 - 使用 php 插入 mysql
- java - TEIID 中的大 Blob 插入/更新
- flutter - 在画布上绘制具有缩放比例的图像
- arduino - 这个称重传感器 arduino 兼容吗?