【问题标题】:Trying to push a nuget package to our private feed. Getting ' load failed: error:02001003:system library:fopen:No such process'试图将一个 nuget 包推送到我们的私人订阅源。获取'加载失败:错误:02001003:系统库:fopen:没有这样的进程'
【发布时间】:2021-04-14 17:24:48
【问题描述】:

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

我收到错误 unable to get local issuer certificate。我按照这里的说明操作:Azure DevOps Server pipeline build fails when using self-signed SSL certificate with "unable to get local issuer certificate" during NuGet restore

但现在我收到错误(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'

【问题讨论】:

  • 这个问题有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this
  • 我确实通过使用 NuGetCommand@2 任务来完成这项工作。我承认我不知道为什么它适用于 DotNetCoreCLI@2 任务。我与它斗争了一整天,做了很多改变,我不知道哪一个有效。

标签: .net-core azure-devops nuget


【解决方案1】:

无法获取本地颁发者证书

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

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

之后,您可以从构建定义中删除 NuGet Tool Installer 任务。

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

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

【讨论】:

  • 那么新版本的 Nuget 又可以与证书存储一起使用了吗?很有趣。
猜你喜欢
  • 2019-03-18
  • 2021-05-20
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 2016-03-26
  • 1970-01-01
相关资源
最近更新 更多