【问题标题】:Error NU1605: Docker restore nuget packages failed错误 NU1605:Docker 还原 nuget 包失败
【发布时间】:2021-01-26 13:51:15
【问题描述】:

我正在将我的 .netcore3.1 微服务运行到 docker 中,为此我已将 docker(基于窗口)文件添加到服务中。 当我使用 docker 运行微服务时,它在步骤“确定要恢复的项目...”时抛出错误

错误

warning NU1603: Team.Api depends on ExceptionHandler (>= 1.0.0-CI-20200424-092531) but ExceptionHandler 1.0.0-CI-20200424-092531 was not found. An approximate best match of ExceptionHandler 1.0.0 was resolved.
    1>/src/TeamApi/Team.Api.csproj : warning NU1603: Team.Api depends on MessageBroker (>= 1.0.0-CI-20200923-130139) but MessageBroker 1.0.0-CI-20200923-130139 was not found. An approximate best match of MessageBroker 1.0.0 was resolved.
    1>/src/TeamApi/Team.Api.csproj : error NU1101: Unable to find package MessageBrokerRabbitMQ. No packages exist with this id in source(s): nuget.org
    1>/src/TeamApi/Team.Api.csproj : warning NU1701: Package 'ExceptionHandler 1.0.0' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.
    1>/src/TeamApi/Team.Api.csproj : error NU1605:  Team.Api -> MessageBroker 1.0.0 -> Microsoft.Extensions.Hosting 3.1.3 -> Microsoft.Extensions.Logging.Debug (>= 3.1.3)
    1>/src/TeamApi/Team.Api.csproj : error NU1605: Detected package downgrade: Microsoft.Extensions.Logging.Debug from 3.1.3 to 3.1.1. Reference the package directly from the project to select a different version.
    1>/src/TeamApi/Team.Api.csproj : error NU1605:  Team.Api -> Microsoft.Extensions.Logging.Debug (>= 3.1.1)
    1>  Failed to restore /src/TeamApi/Team.Api.csproj (in 52.24 sec).

docker 在每次构建时随机包抛出错误

我使用的 Docker 规格是:

Windows version: 1903 (18362.418)
Docker Desktiop version: 3.1.0 (51484)
Engine: 20.10.2

由 Visual Studio 2019 创建的 Docker 文件

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["TeamApi/Team.Api.csproj", "TeamApi/"]
RUN dotnet restore "TeamApi/Team.Api.csproj"
COPY . .
WORKDIR "/src/TeamApi"
RUN dotnet build "Team.Api.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Team.Api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Team.Api.dll"]

我也为 Linux 创建了 docker 文件,但结果是一样的

更新 1:项目的 .csproj 文件

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
    <SccAuxPath>SAK</SccAuxPath>
    <SccLocalPath>SAK</SccLocalPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>
    <UserSecretsId>1d75b031-5ef6-420a-9f88-5b2bb3b78187</UserSecretsId>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="Infrastructure\20200116074051_TeamDB.cs" />
    <Compile Remove="Infrastructure\20200116074051_TeamDB.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116102750_CompanyID.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116102750_CompanyID.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116103510_CompanyIDcccc.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116103510_CompanyIDcccc.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116110757_UserTable.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116110757_UserTable.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116111728_UserTable.cs" />
    <Compile Remove="Infrastructure\Migrations\20200116111728_UserTable.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120064812_new.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120064812_new.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120065302_UpdateUser.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120065302_UpdateUser.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120065757_UpdateUser.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120065757_UpdateUser.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120065948_UpdateUser.cs" />
    <Compile Remove="Infrastructure\Migrations\20200120065948_UpdateUser.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122052759_CompanyUpdate.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122052759_CompanyUpdate.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122063655_UpdateCompanyAndUser.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122063655_UpdateCompanyAndUser.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122064700_UpdateCompany.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122064700_UpdateCompany.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122102506_Updated.cs" />
    <Compile Remove="Infrastructure\Migrations\20200122102506_Updated.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200123051214_TeamDB.cs" />
    <Compile Remove="Infrastructure\Migrations\20200123051214_TeamDB.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200123133951_CompanyRelation.cs" />
    <Compile Remove="Infrastructure\Migrations\20200123133951_CompanyRelation.Designer.cs" />
    <Compile Remove="Infrastructure\Migrations\20200123134744_CompanyRelationUpdate.cs" />
    <Compile Remove="Infrastructure\Migrations\20200123134744_CompanyRelationUpdate.Designer.cs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="6.0.0" />
    <PackageReference Include="AutoMapper" Version="9.0.0" />
    <PackageReference Include="DocumentFormat.OpenXml" Version="2.10.0" />
    <PackageReference Include="ExceptionHandler" Version="1.0.0-CI-20200424-092531" />
    <PackageReference Include="Hangfire.AspNetCore" Version="1.7.11" />
    <PackageReference Include="HangFire.Core" Version="1.7.11" />
    <PackageReference Include="Hangfire.MemoryStorage" Version="1.7.0" />
    <PackageReference Include="HangFire.SqlServer" Version="1.7.11" />


    <PackageReference Include="MessageBroker" version="1.0.0-CI-20200923-130139"/>
    <PackageReference Include="MessageBrokerRabbitMQ" version="1.0.0-CI-20200923-130139"/>

    <PackageReference Include="linqtotwitter" Version="5.0.0" />

    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.6" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="2.2.5" />
    <!--<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>-->
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
    <PackageReference Include="EntityFramework" Version="6.4.0" />
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="RabbitMQ.Client" Version="5.1.2" />
    <PackageReference Include="Serilog" Version="2.9.0" />
    <PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.0.0" />
    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="5.0.0" />
    <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="5.0.0" />
    <PackageReference Include="Polly" Version="7.2.0" />
    <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.7.1" />
    <PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="3.0.39" />
  </ItemGroup>


  <!--<ItemGroup>
    <ProjectReference Include="..\MessageBrokerRabbitMQ\MessageBrokerRabbitMQ.csproj" />
    <ProjectReference Include="..\MessageBroker\MessageBroker.csproj" />
  </ItemGroup>-->

</Project>

更新2

【问题讨论】:

  • 我认为不是 Docker 问题。见thisthis
  • 不错的链接,但我的问题是我的项目没有映射到任何源代码控制版本,它在 VS stand online 中打开,仍然没有找到解决此问题的任何方法
  • 用你的Team.Api.csproj更新你的问题
  • 不明白
  • 问题出在你的nuget包版本上;在您的问题中包含Team.Api.csproj 文件的来源可能会导致解决方案。

标签: docker docker-compose dockerfile visual-studio-2019


【解决方案1】:

您的容器 NuGet 配置 中缺少 RINFeed NuGet 源,此源存在于您的 NuGet config hierarchy 之一中

你有两个选择:

  1. 创建一个nuget.config(或将现有的与 RINFeed 一起使用)并将其复制到容器中
    COPY "nuget.config" .

  2. 在容器中运行命令以添加源
    dotnet nuget add source ....

请参阅此stackoverflow question 作为指南。

警告

RINFeed中的网址必须由DNS container解析

【讨论】:

  • 在根文件夹中添加 nuget.config 文件后发现以下错误错误:无法加载源 pkgs.dev.azure.com*********/RINFeed/nuget/v3/ 的服务索引索引.json。 [/src/TeamApi/Team.Api.csproj] 错误:响应状态码不表示成功:401(未授权)。 [/src/TeamApi/Team.Api.csproj]
  • 您必须配置授权。 See thisthis
  • 我通过提供 PAT 而不是提供密码来消除此错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 2018-12-07
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多