首页 > 解决方案 > 无法以其他用户身份恢复 nuget 包

问题描述

当我dotnet restore以默认用户身份运行时,一切正常:

> dotnet restore
  Determining projects to restore...
  Restored /home/gitlab-runner/builds/LaP8vSUZ/0/my-group/my-api/src/my-api.Api/my-api.Api.csproj (in 441 ms).

但是当我尝试以其他用户身份运行它时,它失败了:

> runuser gitlab-runner -c 'dotnet restore'
/home/gitlab-runner/builds/LaP8vSUZ/0/my-group/my-api/src/my-api.Api/my-api.Api.csproj : error NU1102: Unable to find package MyCompany.Platform.Aspnet with version (>= 1.4.4)
... Found 26 version(s) in MyCompanyFeed [ Nearest version: 1.4.4-beta ]

好像dotnet restoreunder下gitlab-runner没有看到最新的包版本。尝试使用以下方法清理缓存:

runuser gitlab-runner -c 'dotnet nuget locals all -l'

没有帮助。

结果,我的 CI/CD 失败,因为它无法构建项目。为什么会发生,我该如何解决这个问题?

标签: .net-corenugetnuget-package-restore

解决方案


清除全局包和临时帮助:

> runuser gitlab-runner -c 'dotnet nuget locals global-packages -c'
...
> runuser gitlab-runner -c 'dotnet nuget locals temp -c'
...
> runuser gitlab-runner -c 'dotnet restore'
  Determining projects to restore...
  Restored /home/gitlab-runner/builds/LaP8vSUZ/0/my-group/my-api/src/my-api.Api/my-api.Api.csproj (in 441 ms).

想知道为什么all参数没有清除全局:(


推荐阅读