c# - "It was not possible to find any compatible framework version"与 ASP.NET Core 2.2

标签 c# asp.net .net-core

我有一个 ASP.Net Core MVC 2.2 应用程序。 在 Visual Studio 中运行应用程序工作正常。但是,当我尝试使用 dotnet publish 发布应用程序时,出现以下错误:

It was not possible to find any compatible framework version
  The specified framework 'Microsoft.NETCore.App', version '1.0.0' was not found.
    - Check application dependencies and target a framework version installed at:
        C:\Program Files\dotnet\
    - Installing .NET Core prerequisites might help resolve this problem:
        https://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.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.1.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.1.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.1.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.1.8 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.1.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.2.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
        2.2.3 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

我不明白哪里可以引用 V 1.0.0,这里是 dotnet --info 的输出

.NET Core SDK (gem„á "global.json"):
 Version:   2.2.105
 Commit:    7cecb35b92

Laufzeitumgebung:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.2.105\

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.403 [C:\Program Files\dotnet\sdk]
  2.1.500 [C:\Program Files\dotnet\sdk]
  2.1.502 [C:\Program Files\dotnet\sdk]
  2.1.503 [C:\Program Files\dotnet\sdk]
  2.1.504 [C:\Program Files\dotnet\sdk]
  2.1.505 [C:\Program Files\dotnet\sdk]
  2.2.104 [C:\Program Files\dotnet\sdk]
  2.2.105 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

没有使用 global.json 文件,*.csproj 文件如下所示:

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

  <PropertyGroup>
   <TargetFramework>netcoreapp2.2</TargetFramework>
    <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
    <PreserveCompilationContext>true</PreserveCompilationContext>
    <AssemblyName>a17e.Web</AssemblyName>
    <OutputType>Exe</OutputType>
    <PackageId>a17e.Web</PackageId>
    <TypeScriptToolsVersion>3.1</TypeScriptToolsVersion>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='thi|AnyCPU'" />

  <ItemGroup>
    <None Include="App.config" />
    <None Update="log4net.config">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    <None Update="Views\**\*;Areas\**\*.cshtml">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\a17e.Application\a17e.Application.csproj" />
    <ProjectReference Include="..\a17e.EntityFrameworkCore\a17e.EntityFrameworkCore.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Castle.LoggingFacility.MsLogging" Version="3.1.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" />
    <PackageReference Include="BundlerMinifier.Core" Version="2.9.406" />
    <PackageReference Include="Microsoft.IdentityModel.Tokens" Version="5.4.0" />
    <PackageReference Include="Abp.AspNetCore" Version="4.4.0" />
    <PackageReference Include="Abp.Castle.Log4Net" Version="4.4.0" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="2.2.2" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="2.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.6" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.3">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.2.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.0" />
    <PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.5.1" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>

  <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
    <Exec Command="dotnet bundle" />
  </Target>

  <ItemGroup>
    <DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.2.301" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="logs\" />
    <Folder Include="wwwroot\css\views\account\" />
  </ItemGroup>

</Project>

最佳答案

我认为问题出在您的 PrepublishScript (dotnet bundle)。包裹BundlerMinifier.Core (版本 2.9.406)依赖于:

  • .NETCoreApp1.0
  • .NETCoreApp2.0
  • .NETFramework4.5.2
  • .NETStandard2.0

似乎因为该项目以 netcoreapp2.2 为目标,所以此引用失败并且实际上退回到 netcoreapp1.0 或只是给出误导性消息。为了完整性检查,也许将项目降级到 netcoreapp2.0 以验证它是否有效。

请注意,netcoreapp2.2 实现了 netstandard2.0,所以我希望这一切都能正常工作,但有可能在依赖期间没有发生推断分辨率。

关于c# - "It was not possible to find any compatible framework version"与 ASP.NET Core 2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55359167/

相关文章:

c# - 从基类调用时,GetType() 会返回派生程度最高的类型吗?

asp.net - 表单例份验证未正确验证用户

c# - ASP.NET 中的客户端系统时间

Asp.net皮肤文件动态改变类

c# - ASP.NET Core 2.1 Razor Form,Post 未到达 Controller

c# - 如何使用 IConfidentialClientApplication 获取安全 Web API 的 token

c# - 线程池设计问题

c# - 如何实例化 HttpPostedFile

c# - 从代码隐藏访问 web.config key

authentication - JWT token 认证,过期 token 仍然有效,.net 核心 Web Api