Asp.Net 5 语义版本控制
Asp.Net 5 Semantic Versioning
版本控制的工作方式似乎与以前版本的 .Net 不同。 project.json 似乎使用 Major.Minor.Patch-Special 格式的语义版本控制(从我在网上看到的)。
- 这是替换了 Assembly 版本的想法还是添加了它?或者它只是与 Nuget 一起使用。
- 如何在运行时访问版本。我在 Microsoft.Framework.Runtime 包中在线遇到了 Nuget.SemanticVersion 对象,但我找不到如何在代码中检索它。
- 是否有编程方式在构建或自定义脚本中更新此值?
我不会说版本控制发生了特别显着的变化。在版本号 x.y.z 中,"x" 表示 "big changes / breaking changes," "y" 表示 "minor additions and fixes," 而 "z" 表示 "very minor fixes." 这非常接近根据语义版本控制 (SemVer) 的规定。
在基于 project.json
的项目中,只有一个地方可以指定版本,那就是 project.json
文件本身。该版本是 SemVer(例如 x.y.z-prerel
),用于 NuGet 包版本 and 程序集版本,and 程序集信息版。如果您在程序集中显式设置了程序集版本或信息版本,则这些版本将被遵守而不是被覆盖。 (可以看到代码here。)
在运行时,您可以通过反射读取程序集版本(就像以前一样)。
当 运行 在 DNX 应用程序中时,还有一个 ILibraryManager
界面可用于检查 运行 应用程序。然而,这是一个相当高级的场景。
最后,在 project.json
文件中,您可以对版本的 x.y.z 部分进行硬编码,例如1.2.3
但您也可以为预发布说明符指定 *
,例如1.2.3-*
。如果您使用 *
作为预发布说明符,您可以设置一个名为 DNX_BUILD_VERSION
的环境变量来指定 *
的值,例如beta1
或 rc2-54289
.
记录了一些功能请求,以便更灵活地在外部指定整个版本号。
版本控制的工作方式似乎与以前版本的 .Net 不同。 project.json 似乎使用 Major.Minor.Patch-Special 格式的语义版本控制(从我在网上看到的)。
- 这是替换了 Assembly 版本的想法还是添加了它?或者它只是与 Nuget 一起使用。
- 如何在运行时访问版本。我在 Microsoft.Framework.Runtime 包中在线遇到了 Nuget.SemanticVersion 对象,但我找不到如何在代码中检索它。
- 是否有编程方式在构建或自定义脚本中更新此值?
我不会说版本控制发生了特别显着的变化。在版本号 x.y.z 中,"x" 表示 "big changes / breaking changes," "y" 表示 "minor additions and fixes," 而 "z" 表示 "very minor fixes." 这非常接近根据语义版本控制 (SemVer) 的规定。
在基于 project.json
的项目中,只有一个地方可以指定版本,那就是 project.json
文件本身。该版本是 SemVer(例如 x.y.z-prerel
),用于 NuGet 包版本 and 程序集版本,and 程序集信息版。如果您在程序集中显式设置了程序集版本或信息版本,则这些版本将被遵守而不是被覆盖。 (可以看到代码here。)
在运行时,您可以通过反射读取程序集版本(就像以前一样)。
当 运行 在 DNX 应用程序中时,还有一个 ILibraryManager
界面可用于检查 运行 应用程序。然而,这是一个相当高级的场景。
最后,在 project.json
文件中,您可以对版本的 x.y.z 部分进行硬编码,例如1.2.3
但您也可以为预发布说明符指定 *
,例如1.2.3-*
。如果您使用 *
作为预发布说明符,您可以设置一个名为 DNX_BUILD_VERSION
的环境变量来指定 *
的值,例如beta1
或 rc2-54289
.
记录了一些功能请求,以便更灵活地在外部指定整个版本号。