VSO Build Pipeline 的 Nuget 恢复失败

VSO Build Pipeline's Nuget Restore Failed

由于某些 nuget 包与 netcoreapp2.1 不兼容,VSO 构建管道中的 Nuget 恢复失败。但是,当我查看解决方案中的所有 csproj 文件时,none 个 csproj 文件具有这些 nuget 包。我以前可能已经安装了这些,但现在肯定不在这里。

这是错误消息中提到的 csproj 文件。

 <ItemGroup>
    <PackageReference Include="Microsoft.AspNet.WebApi" Version="5.2.6" />
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
  </ItemGroup>

这是 Nuget.Config 文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

请告知如何解决此问题。

编辑======================================= ==============

Microsoft.AspNet.WebApi 中删除 nuget 包后,NugetRestore 通过,但 Build solution 失败。它显示不同的错误

[error]C:\Program Files\dotnet\sdk.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5):

Error NETSDK1004: Assets file 'd:\agentwrok\s....\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.

这是构建解决方案的配置

对下一步有什么建议吗?

VSO Build Pipeline's Nuget Restore Failed

就像 Volodymyr 评论的那样,您不应该将包 Microsoft.AspNet.WebApi 用于 .net 核心项目。这是因为此包针对的是 .NETFramework,而不是 .NET Core/.NETStandard。它与 .NET Core 不兼容。

当您在 nuget.org 上检查包 Microsoft.AspNet.WebApi 时,您会注意到此包依赖于 Microsoft.AspNet.WebApi.WebHost,它仅针对 .NET Framework:

并且包 Microsoft.AspNet.WebApi.WebHost 的子依赖项 Microsoft.AspNet.WebApi.Core 也仅针对 .NET Framework:

因此,出现此问题的原因是包 Microsoft.AspNet.WebApi 及其依赖项与 .NET Core 框架不兼容。

希望对您有所帮助。