无效的框架标识符 Dotnet 恢复、docker 构建

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

当我尝试在 dotnet core API 中运行 docker build 时遇到此错误:

 Invalid framework identifier ''

这是我的dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY Backend/AppManagerAPI/AppManagerAPI.csproj Backend/AppManagerAPI/
COPY Backend/DTO/DTO.csproj Backend/DTO/
COPY nuget.config ./
COPY Build/dependencies.props ./Build
COPY Backend/Database/Database.csproj Backend/Database/
COPY Backend/Service/Service.csproj Backend/Service/
COPY Utilities/Utilities.csproj Utilities/
RUN dotnet restore "Backend/AppManagerAPI/AppManagerAPI.csproj"
COPY . .
WORKDIR "/src/Backend/AppManagerAPI"
RUN dotnet build "AppManagerAPI.csproj" -c Release -o /app

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

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

以及完整的错误堆栈:

$ docker build -t appmanager .
Sending build context to Docker daemon  560.6kB
Step 1/23 : FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
 ---> 34973cab5999
Step 2/23 : WORKDIR /app
 ---> Using cache
 ---> c402eb945a47
Step 3/23 : EXPOSE 80
 ---> Using cache
 ---> 8ac4a84a040e
Step 4/23 : EXPOSE 443
 ---> Using cache
 ---> 3c5014f9b6d5
Step 5/23 : FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
 ---> 08657316a4cd
Step 6/23 : WORKDIR /src
 ---> Using cache
 ---> e851dfaa1225
Step 7/23 : COPY Backend/AppManagerAPI/AppManagerAPI.csproj Backend/AppManagerAPI/
 ---> Using cache
 ---> 1eaa1d28c559
Step 8/23 : COPY Backend/DTO/DTO.csproj Backend/DTO/
 ---> Using cache
 ---> 81f9260e48a0
Step 9/23 : COPY nuget.config ./
 ---> Using cache
 ---> 3901e5ab8090
Step 10/23 : COPY Build/dependencies.props ./Build
 ---> Using cache
 ---> 35128353acde
Step 11/23 : COPY Backend/Database/Database.csproj Backend/Database/
 ---> Using cache
 ---> 25686efb1af9
Step 12/23 : COPY Backend/Service/Service.csproj Backend/Service/
 ---> Using cache
 ---> 3287a7a78971
Step 13/23 : COPY Utilities/Utilities.csproj Utilities/
 ---> Using cache
 ---> fe57c187d929
Step 14/23 : RUN dotnet restore "Backend/AppManagerAPI/AppManagerAPI.csproj"
 ---> Running in 33780f69aa7d
/usr/share/dotnet/sdk/2.2.401/NuGet.targets(123,5): error : Invalid framework identifier ''. [/src/Backend/AppManagerAPI/AppManagerAPI.csproj]
The command '/bin/sh -c dotnet restore "Backend/AppManagerAPI/AppManagerAPI.csproj"' returned a non-zero code: 1

我已经尝试了我能想到的所有方法,我想知道它是否与我的properties.props 文件有关,但将其复制到容器中不起作用。任何帮助,将不胜感激。

更新

这是我的 AppManagerAPI.csproj

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

  <PropertyGroup>
    <TargetFramework>$(NetCoreTargetVersion)</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <UserSecretsId>d37c9296-55fb-4c04-ad4e-3d1f5451dc28</UserSecretsId>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <NoWarn></NoWarn>
    <AllowUnsafeBlocks></AllowUnsafeBlocks>
  </PropertyGroup>
  <ItemGroup>
    <None Remove="API.xml" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Alpha.WebUtils.Core" Version="$(AlphaWebUtilsCorePackageVersion)" />
    <PackageReference Include="Microsoft.AspNetCore.App">
      <PrivateAssets Condition="'%(PackageReference.Version)' == ''">all</PrivateAssets>
      <Publish Condition="'%(PackageReference.Version)' == ''">true</Publish>
    </PackageReference>
    <PackageReference Include="Alpha.Utils.Core" Version="$(AlphaUtilsCorePackageVersion)" />
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="$(AutomapperDIPackageVersion)" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.4.10" />
    <PackageReference Include="Scrutor" Version="$(ScrutorPackageVersion)" />
    <PackageReference Include="Alpha.Backend.Core" Version="$(AlphaBackendCorePackageVersion)" />
    <PackageReference Include="Alpha.Backend.EFCore" Version="$(AlphaBackendEFCorePackageVersion)" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="$(SwashbuckleAspNetCorePackageVersion)" />
    <PackageReference Include="NetEscapades.Extensions.Logging.RollingFile" Version="$(LoggingRollingFilePackageVersion)" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Api.Analyzers" Version="$(ApiAnalyzersPackageVersion)" />
    <PackageReference Include="EfCore.GenericBizRunner" Version="$(EfCoreGenericBizRunnerPackageVersion)" />
  </ItemGroup>

  <ItemGroup>    
    <ProjectReference Include="..\DTO\DTO.csproj" />    
    <ProjectReference Include="..\Service\Service.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Models\" />
    <Folder Include="wwwroot\Upload\" />
    <Folder Include="logs\" />
  </ItemGroup>

  <ItemGroup>
    <Compile Remove="Controllers\Administracion\RutasController.cs" />
    <Compile Remove="Controllers\Administracion\SectoresController.cs" />
    <Compile Remove="Controllers\Administracion\ConsultaRutasController.cs" />
    <Compile Remove="Controllers\Administracion\ComercioEntidadTipoClienteController.cs" />
    <Compile Remove="Controllers\Administracion\LugaresController.cs" />
    <Compile Remove="Controllers\Genericos\CentrosController.cs" />
    <Compile Remove="Controllers\Genericos\MenuController.cs" />
    <Compile Remove="Controllers\GestionIntervenciones\AlisysController.cs" />
    <Compile Remove="Controllers\GestionIntervenciones\OrdenesIntervencionesController.cs" />
    <Compile Remove="Controllers\GestionIntervenciones\SauController.cs" />
    <Compile Remove="Controllers\Genericos\SystemController.cs" />
    <Compile Remove="Controllers\Mantenimiento\AccesoriosController.cs" />
    <Compile Remove="Controllers\Mantenimiento\DiasFestivosController.cs" />
    <Compile Remove="Controllers\Mantenimiento\EemmsController.cs" />
    <Compile Remove="Controllers\Mantenimiento\EntidadesMantenedorasController.cs" />
    <Compile Remove="Controllers\Mantenimiento\EtiquetasSatController.cs" />
    <Compile Remove="Controllers\Mantenimiento\GruposCualificadoresController.cs" />
    <Compile Remove="Controllers\Mantenimiento\HorariosController.cs" />
    <Compile Remove="Controllers\Mantenimiento\IncidenciasController.cs" />
    <Compile Remove="Controllers\Mantenimiento\MarcasController.cs" />
    <Compile Remove="Controllers\Mantenimiento\ModelosController.cs" />
    <Compile Remove="Controllers\Mantenimiento\ModelosIndicadosController.cs" />
    <Compile Remove="Controllers\Mantenimiento\MotivoCierreController.cs" />
    <Compile Remove="Controllers\Mantenimiento\MotivosParadaController.cs" />
    <Compile Remove="Controllers\Mantenimiento\PatronesCentroController.cs" />
    <Compile Remove="Controllers\Mantenimiento\PerfilesUsuarioController.cs" />
    <Compile Remove="Controllers\Mantenimiento\PermisosController.cs" />
    <Compile Remove="Controllers\Mantenimiento\PiezaAlmacenPrecioController.cs" />
    <Compile Remove="Controllers\Mantenimiento\PiezasController.cs" />
    <Compile Remove="Controllers\Mantenimiento\SoftwaresController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TecnologiasController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TipoActualizacionController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TipoIncidenciaController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TipoIntervencionController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposClientesController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposCoberturasController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposLugarController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposMantenimientoController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposModoTerminalController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposSeguridadTerminalController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposTecnologiaController.cs" />
    <Compile Remove="Controllers\Mantenimiento\TiposTerminalController.cs" />
    <Compile Remove="Controllers\Administracion\DelegacionesController.cs" />
    <Compile Remove="Controllers\Administracion\ListasCorreoController.cs" />
    <Compile Remove="Controllers\Genericos\CodigosPostalesController.cs" />
    <Compile Remove="Controllers\Genericos\MotivoTipoEntidadController.cs" />
    <Compile Remove="Controllers\Genericos\PrioridadesController.cs" />
    <Compile Remove="Controllers\GestionIntervenciones\BloqueosController.cs" />
    <Compile Remove="Controllers\GestionIntervenciones\EstadosIntervencionController.cs" />
    <Compile Remove="Controllers\GestionIntervenciones\EstadosOdinController.cs" />
    <Compile Remove="Controllers\Mantenimiento\Configuracion\CalendarioLaboralesController.cs" />
    <Compile Remove="Controllers\Mantenimiento\Configuracion\NotificacionesEmailController.cs" />
    <Compile Remove="Controllers\Mantenimiento\AccionesController.cs" />
  </ItemGroup>
</Project>
c# docker asp.net-core .net-core dockerfile
2个回答
11
投票

问题是我需要复制我的

Directory.Build.props
文件,现在正在工作。刚刚将此行添加到我的
dockerfile

COPY Directory.Build.props ./

0
投票

就我而言,这是因为有些项目不包含 该标签必须位于所有项目库或其他网络项目中

<TargetFramework>net8.0</TargetFramework>

© www.soinside.com 2019 - 2024. All rights reserved.