Nuget 未能对第三方软件包之一进行规范化

问题描述 投票:0回答:0

我还没有开发运营经验。

我正在尝试修复 Azure 上 CI/CD 流程的 CI 部分。

我们也使用Nuget最新版本

目前该项目的构建失败,因为一个库是

Serilog.Enrichers.Span.3.0.0

CI 脚本为我们提供以下内容;它成功下载了软件包。

2023-07-25T17:14:13.7200079Z Restoring NuGet package Serilog.Enrichers.Span.3.0.0.
2023-07-25T17:14:13.7244723Z   GET https://www.myget.org/F/caary/auth/****************/api/v2/Packages(Id='Serilog.Enrichers.Span',Version='3.0.0')
2023-07-25T17:14:13.7275362Z   GET https://api.nuget.org/v3-flatcontainer/serilog.enrichers.span/3.0.0/serilog.enrichers.span.3.0.0.nupkg
2023-07-25T17:14:13.7353161Z   OK https://api.nuget.org/v3-flatcontainer/serilog.enrichers.span/3.0.0/serilog.enrichers.span.3.0.0.nupkg 18ms
2023-07-25T17:14:13.7353844Z Acquiring lock for the installation of Serilog.Enrichers.Span 3.0.0

但这就是它在路径上添加包文件夹的方式:

2023-07-25T17:14:15.3666357Z Adding package 'Serilog.Enrichers.Span.3.0.0+build.482' to folder 'f:\z\1\s\packages'
2023-07-25T17:14:15.3759924Z Added package 'Serilog.Enrichers.Span.3.0.0+build.482' to folder 'f:\z\1\s\packages'

注意:它创建了带有语义版本的包的目录名称:Serilog.Enrichers.Span.3.0.0+build.482

现在,当

dotnet
开始编译时,它会尝试在以下路径中查找上述包,并最终给出错误;也构建失败:

2023-07-25T17:15:00.2353455Z           Considered "F:\z\1\s\packages\Serilog.Enrichers.Span.3.0.0\lib\net472\Serilog.Enrichers.Span.dll", but it didn't exist.

注意:以上路径是规范化版本检查(与

csproj
文件中存在的完全相同)

<Reference Include="Serilog.Enrichers.Span, Version=3.0.0.0, Culture=neutral, PublicKeyToken=fc5550082a9c642c, processorArchitecture=MSIL">   
<HintPath>..\packages\Serilog.Enrichers.Span.3.0.0\lib\net472\Serilog.Enrichers.Span.dll</HintPath>
</Reference>

除了这个包之外,其他所有包都可以完美下载和编译。

为什么 nuget 无法规范化这个包? 处理具有上述语义版本的包的最佳解决方案是什么?

附注这个问题花了我很多时间,将不胜感激,谢谢。

azure-devops nuget cicd semantic-versioning
© www.soinside.com 2019 - 2024. All rights reserved.