如何使用ARTIFACTORY执行Nuget恢复

Tatarao Vana
2023-01-22 11:06

作品简介:

据官方消息微软文档如果我们在一个项目中执行Nuget还原命令,它会根据你的项目文件(.csproj)或你的包中的引用来安装所有的包依赖项。配置文件。首先,它安装直接依赖关系,然后在整个依赖关系图中安装这些包的依赖关系。

Nuget恢复使用Artifactory:

如果一个包还没有安装,NuGet首先尝试从缓存.如果包在缓存中不可用,NuGet会尝试从列表中所有启用的源下载包,我们必须在这里配置Artifactory,以根据NuGet客户端需求解析包。下面是示例客户机配置。

配置Nuget客户端来解析来自Artifactory的包$ cat ~/.config/NuGet/NuGet .config
<?xml version="1.0" encoding="utf-8"?>
< >配置
< packageSources >


< / packageSources >
< packageSourceCredentials >
< Artifactory >


< / Artifactory >
< ArtifactoryV2 >


< / ArtifactoryV2 >
< / packageSourceCredentials >
< apikey >
<添加关键= " http://art。local/artifactory/api/nuget/test-nuget" value="XXXX" /> .
<添加关键= " http://art。local/artifactory/api/nuget/v3/test-nuget" value="XXXX" /> .
< / apikey >
< / apikey >
> < /配置

NuGet恢复步骤:

1.克隆一个样本
存储库(https://github.com/NuGet/Samples/tree/main/Satellite-Packages)或创建一个NuGet项目。
2.配置NuGet客户端以使用Artifactory解析包。
3.在项目中执行NuGet恢复。

$ nuget restore -source Artifactory -PackagesDirectory testpkgdir -NoCache -NonInteractive - verbose normal
MSBuild自动检测:使用MSBuild版本'15.0'从'/usr/local/Cellar/mono/6.12.0.122/lib/mono/ MSBuild /15.0/bin'。
在包中列出的所有包。配置已经安装。

$ nuget恢复卫星epackagesample .sln
MSBuild自动检测:使用MSBuild版本'15.0'从'/usr/local/Cellar/mono/6.12.0.122/lib/mono/ MSBuild /15.0/bin'。
恢复NuGet包ClassLibrary.1.0.0。
缓存http://art.local/artifactory/api/nuget/test-nuget/Packages (Id =“ClassLibrary”=“1.0.0版本)
得到http://art.local/artifactory/api/nuget/test-nuget/Download/ClassLibrary/1.0.0.0
...
好的http://art.local/artifactory/api/nuget/test-nuget/Download/ClassLibrary/1.0.0.0 3083ms
从http://art.local/artifactory/api/nuget/test-nuget安装ClassLibrary 1.0.0,内容哈希值XXXXX。
将包“ClassLibrary.1.0.0”添加到文件夹“/Users/apps/nuget/restore/microsoft/Samples/Satellite-Packages/packages”
添加包'ClassLibrary.1.0.0'到文件夹'/Users/apps/nuget/restore/microsoft/Samples/Satellite-Packages/packages'

NuGet配置文件使用:
/用户/ config / NuGet / NuGet.Config

提要:
http://art.local/artifactory/api/nuget/test-nuget
http://art.local/artifactory/api/nuget/v3/test-nuget

安装:
1个包到1个包。配置项目

4.验证Artifactory日志。

2022-05-17t9:43:33. 009z [jfrt] [INFO] [a750e2cc3d667f03] [o.a.r。httpreo:429] [ttp-nio-8081-exec-33] - test-nuget-remote downloading https://api.nuget.org/v3/index.json未知内容长度
....
2022-05-17t9:43:37. 258z [jfrt] [INFO] [8404817df574a3fb] [o.j.r.n。]NuGetWorkContext:76] [art- exc -9] -为路径'classlibrary.1.0.0. nuupkg '上的'test-nuget-remote-cache'索引NuGet元数据
2022-05-17t9:43:37. 261z [jfrt] [INFO] [8404817df574a3fb] [o.j.r.n。NuGetWorkContext:96] [art- execute -9] -已经在路径'classlibrary.1.0.0上完成了Nuget元数据的写入。“Nupkg”花了69毫秒