3

如果.NET Core 项目从 NuGet GitVersion.CommandLine获取可执行文件,如何在 Azure Pipelines 中配置构建步骤以执行命令 GitVersion.exe ?

在 .NET Framework 中可以在 path 中找到可执行文件packages/GitVersion.CommandLine/**/GitVersion.exe,但在 .NET Core 包目录中不存在。

4

2 回答 2

3

您可以安装Git 版本扩展并将其添加到您的管道中,它也适用于 .NET Core 项目。

该扩展生成 2 个变量:

GitVersion.NuGetVersion
GitVersion.SemVer

您可以在接下来的步骤中使用这些变量:$(GitVersion.SemVer).

例如(在 yaml 中):

steps:

- task: GitVersion@4
  displayName: GitVersion

- powershell: 'Write-Host $(GitVersion.SemVer)'

结果:

在此处输入图像描述

如果要使用特定版本,可以添加命令行任务并使用 chocolaty 安装:

choco install gitversion.portable

顺便说一句,Microsoft Hosted VS2017/2019 Agents 包括安装的 GitVersion 4.0.0。

于 2019-06-26T13:02:03.260 回答
1

.NET Core 2 引入了 Nuget 缓存的概念(有点类似于 GAC)。所有包仅下载一次到特定文件夹并用于所有项目。之所以需要它,是因为 .NET Core 2.x-3.x 现在由数百个包组成。因此,现在的框架非常精细,您可以使用所需的内容或“聚合”包,例如 microsoft.aspnetcore.all(它引用所有内容)。

所以现在您可以在您的用户帐户下找到已安装的 Nuget 包,例如:C:\Users\<您的用户名>.nuget\packages。

根据文档,您可以运行此命令,该命令将列出您机器上的所有 Nuget 文件夹:

dotnet nuget locals all -l

如果您无法访问此文件夹,或者您不知道构建代理上的用户名,我建议您下载该工具并将其签入您的 Git 存储库,以便您有一个固定的路径。

于 2019-06-26T13:20:12.493 回答