Trying to push a nuget package to our private feed. Getting ' load failed: error:02001003:system library:fopen:No such process'

Trying to push a nuget package to our private feed. Getting ' load failed: error:02001003:system library:fopen:No such process'

我们有一个 DevOps Server 2020 的本地实例。我有一个 dotnet 标准 2.0 库,我正试图将其推送到我们的内部 nuget 提要。

我收到错误 unable to get local issuer certificate。我按照这里的说明操作:

但现在我收到错误 (node:6056) Warning: Ignoring extra certs from C:\Certs\root.crt, load failed: error:02001003:system library:fopen:No such process

这是我设置根证书路径的 YAML:

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  NODE.EXTRA.CA.CERTS: 'C:\Certs\root.crt'

这里是我打包和推送 Nuget 包的 YAML:

- task: DotNetCoreCLI@2
  inputs:
    command: 'pack'
    packagesToPack: '**/*.csproj'
    versioningScheme: 'off'

- task: DotNetCoreCLI@2
  inputs:
    command: 'push'
    packagesToPush: '$(Build.ArtifactStagingDirectory)/*.nupkg'
    nuGetFeedType: 'internal'
    publishVstsFeed: 'b4b089f9-ff2f-4b74-9690-ec6082a4872b'

unable to get local issuer certificate

要解决此问题,您可以尝试手动获取要使用的 NuGet.exe 版本(例如 nuget.exe v5.9.1),并将其放在 PATH 上的文件夹中的专用代理上.

  • 手动将 NuGet.exe 工具下载到该代理计算机(例如 d:\tool\nuget.exe).
  • 打开系统属性 window > 高级 > 环境变量。
  • 在系统变量部分,单击新建按钮 > 变量名称:nuget; 变量值:d:\tool > 单击确定。
  • Select路径变量>编辑>add/append%nuget%项(结果 将是 xxxx;%nuget%) 重新启动你的机器。

之后,您可以从构建定义中删除 NuGet 工具安装程序任务。

如果它不适合你,请尝试 运行“.\externals\nuget\nuget.exe update -self”为代理计算机上的私人代理安装文件夹并获取更新版本,它再次与本地证书存储一起使用:

您可以查看 this thread 了解更多详情。