似乎版本控制的工作方式与之前版本的.Net不同。 project.json似乎使用了语法版本(我在网上看到的),格式为Major.Minor.Patch-Special。
答案 0 :(得分:3)
我不会说版本控制以特别戏剧性的方式发生了变化。在版本号x.y.z中,“x”表示“大变化/破坏变化”,“y”表示“次要添加和修复”,“z”表示“非常小的修复”。这与Semantic Versioning(SemVer)所说的非常接近。
在基于project.json
的项目中,只有一个地方可以指定版本,而且位于project.json
文件本身。那个版本是SemVer(例如x.y.z-prerel
),用于NuGet包版本和汇编版本,和汇编信息版本。如果您已在程序集中明确设置程序集版本或信息版本,那么这些将受到尊重而不会被覆盖。 (您可以看到代码here。)
在运行时,您可以通过反射阅读装配版本(就像您一直可以的那样)。
在DNX应用程序中运行时,还有一个ILibraryManager
界面,可用于检查正在运行的应用程序。但是,这是一个相当高级的方案。
最后,在project.json
文件中,您可以对该版本的x.y.z部分进行硬编码,例如: 1.2.3
但您也可以为预发布说明符指定*
,例如1.2.3-*
。如果您使用*
作为预发布说明符,则可以设置名为DNX_BUILD_VERSION
的环境变量以指定*
的值,例如beta1
或rc2-54289
。
记录了一些功能请求,以便在外部指定整个版本号时更加灵活。