我不是部署方面的大专家,所以向大家询问我在任何地方的互联网上都找不到的一件事。
假设我有一个用 .net core 编写的项目,最好是 aspnet core。我也在使用 TFS (VSTS)。
理想情况下,我需要在我的软件版本中包含一个内部版本号(或版本号,我不知道如何更准确),我可以从“关于我们”页面中看到。理想情况下,我想它应该是当前代码版本的签入号。但我想这可能是任何其他伟大的解决方案存在。
需要建议。
我不是部署方面的大专家,所以向大家询问我在任何地方的互联网上都找不到的一件事。
假设我有一个用 .net core 编写的项目,最好是 aspnet core。我也在使用 TFS (VSTS)。
理想情况下,我需要在我的软件版本中包含一个内部版本号(或版本号,我不知道如何更准确),我可以从“关于我们”页面中看到。理想情况下,我想它应该是当前代码版本的签入号。但我想这可能是任何其他伟大的解决方案存在。
需要建议。
最简单的方法是使用内部版本号作为您的版本号。有一个全局 .NET 版本控制策略:AssemblyInformationalVersion。您可以使用此策略为您的软件添加版本控制。您可以使用powershell 脚本对您的程序集进行版本控制。
powershell 脚本将在后台执行魔术,根据此产品版本替换 Assembly Info 文件中AssemblyVersion、AssemblyFileVersion和 AssemblyInformationalVersion的所有版本控制值。产品版本将作为一个整体传递给 AssemblyVersion 和 AssemblyInformationalVersion 属性。AssemblyFileVersion 将替换为完整版本号,该版本号由产品版本的主要和次要版本号、基于 Julian 的日期和递增的内部版本号组成。
对于 Assembly File Version = 2.7.15169.03的含义
- 2 => 取自“主要”产品版本
- 7 => 取自“次要”产品版本
- 15169 => 由构建过程生成:“15” = 2015 年,“169” = 2015 年
- 3 => 第三次构建,在 2015 年的第 169 天运行
有关更多详细信息,您可以查看这篇精彩的帖子:TFS Build 2015 … and versioning!和这个类似的主题vNext Build Awesomeness – 管理版本号
更新
您可以$(Build.SourceVersion)
在内部版本号格式中使用以包含变更集信息,例如
$(BuildDefinitionName)_$(date:yyyyMMdd)_$(Build.BuildId).$(Build.SourceVersion)$(rev:.r)
但是,此 $(Build.SourceVersion) 仅在提交时自动触发构建(持续集成)时才有效。因为当您运行手动构建时,您必须输入源版本字段才能填充它。更多详细信息请查看:Build.SourceVersion 在 VSO vNext Build 中为空白
您还可以使用 PowerShell 脚本获取源版本变更集编号并将其应用于您的内部版本号或 AssemblyInfo。