Azure Pipelines - 在 .NET Core 项目中使用从 NuGet 下载的工具
Azure Pipelines - use tool downloaded from NuGet in .NET Core project
如果 .NET Core 项目从 NuGet GitVersion.CommandLine 获取可执行文件,我如何在 Azure Pipelines 中配置构建步骤以执行命令 GitVersion.exe?
在 .NET Framework 中可以在路径 packages/GitVersion.CommandLine/**/GitVersion.exe
中找到可执行文件,但在 .NET Core 包目录中不存在。
您可以安装 Git Version 扩展并将其添加到您的管道中,它也适用于 .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。
.NET Core 2引入了Nuget缓存的概念(有点类似于GAC)。所有包只下载一次到特定文件夹并重复用于所有项目。它是必需的,因为 .NET Core 2.x-3.x 现在由数百个包组成。所以现在的框架非常细化,你可以使用你需要的或者 "aggregating" 包,例如microsoft.aspnetcore.all(引用所有内容)。
现在您可以在您的用户帐户下找到已安装的 Nuget 包,例如:
C:\Users\<你的用户名>.nuget\packages.
根据 this 文档,您可以 运行 此命令将列出您计算机上的所有 Nuget 文件夹:
dotnet nuget locals all -l
如果您无法访问此文件夹或您不知道构建代理上的用户名,我建议您下载该工具并将其签入您的 Git 存储库,这样您就有了一个固定的路径。
如果 .NET Core 项目从 NuGet GitVersion.CommandLine 获取可执行文件,我如何在 Azure Pipelines 中配置构建步骤以执行命令 GitVersion.exe?
在 .NET Framework 中可以在路径 packages/GitVersion.CommandLine/**/GitVersion.exe
中找到可执行文件,但在 .NET Core 包目录中不存在。
您可以安装 Git Version 扩展并将其添加到您的管道中,它也适用于 .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。
.NET Core 2引入了Nuget缓存的概念(有点类似于GAC)。所有包只下载一次到特定文件夹并重复用于所有项目。它是必需的,因为 .NET Core 2.x-3.x 现在由数百个包组成。所以现在的框架非常细化,你可以使用你需要的或者 "aggregating" 包,例如microsoft.aspnetcore.all(引用所有内容)。
现在您可以在您的用户帐户下找到已安装的 Nuget 包,例如: C:\Users\<你的用户名>.nuget\packages.
根据 this 文档,您可以 运行 此命令将列出您计算机上的所有 Nuget 文件夹:
dotnet nuget locals all -l
如果您无法访问此文件夹或您不知道构建代理上的用户名,我建议您下载该工具并将其签入您的 Git 存储库,这样您就有了一个固定的路径。