7

似乎版本控制的工作方式与以前版本的 .Net 不同。project.json 似乎使用了语义版本控制(从我在网上看到的),格式为 Major.Minor.Patch-Special。

  1. 这会取代组装版本的想法还是增加它?或者它只是与 Nuget 一起使用。
  2. 在运行时如何访问版本。我在 Microsoft.Framework.Runtime 包中在线遇到了 Nuget.SemanticVersion 对象,但我不知道如何在代码中检索它。
  3. 是否有编程方式来更新构建或自定义脚本上的这个值?
4

1 回答 1

3

我不会说版本控制发生了特别戏剧性的变化。在版本号 xyz 中,“x”表示“重大更改/重大更改”,“y”表示“较小的添加和修复”,“z”表示“非常小的修复”。这与语义版本控制 (SemVer) 状态非常接近。

project.json基于 - 的项目中,只有一个地方可以指定版本,那就是project.json文件本身。那个版本是 SemVer(例如x.y.z-prerel),用于 NuGet 包版本程序集版本,以及程序集信息版本。如果您已在程序集中显式设置程序集版本或信息版本,则这些将被尊重而不是被覆盖。(您可以在此处查看代码。)

在运行时,您可以通过反射读取程序集版本(就像您一直可以做到的那样)。

在 DNX 应用程序中运行时,还有一个ILibraryManager界面可用于检查正在运行的应用程序。但是,这是一个相当高级的场景。

最后,在project.json文件中,您可以对版本的 xyz 部分进行硬编码,例如,1.2.3但您也可以*为预发布说明符指定 a,例如1.2.3-*. 如果您使用*预发布说明符,您可以设置一个名为的环境变量DNX_BUILD_VERSION来指定 的值*,例如beta1rc2-54289

记录了一些功能请求,以便在外部指定整个版本号时更加灵活。

于 2015-09-08T18:29:15.570 回答