代码之家  ›  专栏  ›  技术社区  ›  TheEdge

正在修复指定的框架“microsoft.aspnetcore.app”,版本“2.1.1”

  •  1
  • TheEdge  · 技术社区  · 6 年前
    • Visual Studio 2017 15.8.1版
    • 通过新建项目向导生成的具有Docker支持的新空.NET核心MVC应用程序

    一旦我运行应用程序,就会得到错误:

    The specified framework 'Microsoft.AspNetCore.App', version '2.1.1' was not found.
      - Check application dependencies and target a framework version installed at:
          /usr/share/dotnet/
      - Installing .NET Core prerequisites might help resolve this problem:
          http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
      - The .NET Core framework and SDK can be installed from:
          https://aka.ms/dotnet-download
      - The following versions are installed:
          2.1.0 at [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
    The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
    

    但是,我已经检查并安装了以下设备:

    C:\Users\homer>dotnet --list-sdks
    1.0.0-preview2-003121 [C:\Program Files\dotnet\sdk]
    1.0.0-preview2-003131 [C:\Program Files\dotnet\sdk]
    1.0.3 [C:\Program Files\dotnet\sdk]
    1.0.4 [C:\Program Files\dotnet\sdk]
    1.1.0 [C:\Program Files\dotnet\sdk]
    2.0.2 [C:\Program Files\dotnet\sdk]
    2.0.3 [C:\Program Files\dotnet\sdk]
    2.1.2 [C:\Program Files\dotnet\sdk]
    2.1.4 [C:\Program Files\dotnet\sdk]
    2.1.100 [C:\Program Files\dotnet\sdk]
    2.1.101 [C:\Program Files\dotnet\sdk]
    2.1.103 [C:\Program Files\dotnet\sdk]
    2.1.104 [C:\Program Files\dotnet\sdk]
    2.1.201 [C:\Program Files\dotnet\sdk]
    2.1.202 [C:\Program Files\dotnet\sdk]
    2.1.300 [C:\Program Files\dotnet\sdk]
    2.1.301 [C:\Program Files\dotnet\sdk]
    2.1.400 [C:\Program Files\dotnet\sdk]
    
    C:\Users\homer>dotnet --list-runtimes
    Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.NETCore.App 1.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 1.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    

    据我所知,它已经安装了。很明显我有点问题 不变 项目文件。

    文档文件

    FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
    WORKDIR /app
    EXPOSE 19354
    EXPOSE 44350
    
    FROM microsoft/dotnet:2.1-sdk AS build
    WORKDIR /src
    COPY ["WebApplication4/WebApplication4.csproj", "WebApplication4/"]
    RUN dotnet restore "WebApplication4/WebApplication4.csproj"
    COPY . .
    WORKDIR "/src/WebApplication4"
    RUN dotnet build "WebApplication4.csproj" -c Release -o /app
    
    FROM build AS publish
    RUN dotnet publish "WebApplication4.csproj" -c Release -o /app
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "WebApplication4.dll"]
    

    CPROJ

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
        <DockerTargetOS>Linux</DockerTargetOS>
        <UserSecretsId>9476cca2-b6a8-4c0e-a766-a2e480ded46a</UserSecretsId>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App" />
        <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.1916590" />
        <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
      </ItemGroup>
    
    </Project>
    

    那么,我错过了什么来完成这项工作呢?

    2 回复  |  直到 6 年前
        1
  •  2
  •   TheEdge    6 年前

    将dockerfile修改为(注意2.1.1而不是2.1)解决了以下问题:

    FROM microsoft/dotnet:2.1.1-aspnetcore-runtime AS base
    WORKDIR /app
    EXPOSE 19354
    EXPOSE 44350
    
    FROM microsoft/dotnet:2.1.1-sdk AS build
    WORKDIR /src
    COPY ["WebApplication4/WebApplication4.csproj", "WebApplication4/"]
    RUN dotnet restore "WebApplication4/WebApplication4.csproj"
    COPY . .
    WORKDIR "/src/WebApplication4"
    RUN dotnet build "WebApplication4.csproj" -c Release -o /app
    
    FROM build AS publish
    RUN dotnet publish "WebApplication4.csproj" -c Release -o /app
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "WebApplication4.dll"]
    

    如果M$真的查看了您机器上安装的内容并生成了正确的文件,这不是很好吗?-)

        2
  •  0
  •   Paul Hieltjes    6 年前

    我也有同样的问题,只是把版本改成了2.0。不完全是解决问题的方法,但可能会让您运行项目。

    为此,请卸载项目,然后编辑项目文件并更改 NetCoreApp2.1到NetCoreApp2.0