基于 .NET 8 中的构建获取 tfs 变更集

问题描述 投票:0回答:1

我有一个 .NET 8 Web 应用程序,可以向用户显示产品的版本。 在 csproj 文件中,我有以下设置:

<PropertyGroup>
    <VersionPrefix>1.0.0.1</VersionPrefix>
</PropertyGroup>

而不是手动更新构建值 1.0.0.[1]有时我希望这个值能够随着当前构建的变更集自动更新。 这可以在签入代码或发布/构建时完成。两者都适合我。

例如,如果我发布了变更集 1423,我希望版本为 1.0.0.1423。

我看过几篇文章,但他们都提到获取最新的 TFS 变更集而不是当前的构建变更集,如果我要发布旧版本,这会产生问题。
我不确定这是否可能,但我很乐意听取建议。

c# tfs version .net-8.0
1个回答
0
投票

在管道中,您可以使用预定义变量“

Build.SourceVersion
”来获取当前构建正在运行的变更集。

enter image description here

对于您的情况,您可以设置管道变量 '

VerPrefix
' 并将其值设置为 '
1.0.0.$(Build.SourceVersion)
'。

enter image description here

在评估管道变量 '

VerPrefix
' 时,表达式 '
$(Build.SourceVersion)
' 将被解析为实际变更集。例如,当变更集为 '
77
' 时,'
VerPrefix
' 的值将被评估为 '
1.0.0.77
'。

在管道中,您可以使用 .NET Core 任务为您的 dotnet build

 文件运行 'dotnet publish
' 或 '
.csproj
' 命令.NET 8 Web 应用程序,并将参数“
-p:VersionPrefix=$(VerPrefix)
”添加到命令中。在构建 Web 应用程序时,此参数将使用 '
VerPrefix
' 的值覆盖原始值 '
1.0.0.1
'。

enter image description here

enter image description here


© www.soinside.com 2019 - 2024. All rights reserved.