【问题标题】:This version of Microsoft.AspNetCore.All is only compatible with the netcoreapp2.1 target framework此版本的 Microsoft.AspNetCore.All 只兼容 netcoreapp2.1 目标框架
【发布时间】:2018-11-16 18:39:13
【问题描述】:

当我从 2.0 升级到 .NET Core 2.1 后尝试将应用程序发布到 Web 服务器时,我收到以下消息:“此版本的 Microsoft.AspNetCore.All 仅与 netcoreapp2.1 目标框架兼容。请以 netcoreapp2.1 为目标或选择与 netcoreapp2.0 兼容的 Microsoft.AspNetCore.All 版本。”

它在我的开发机器上运行良好。

这是我的项目文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>
</Project>

我见过this,但这似乎不是问题。我也试用了 CodeGeneration.Tools 的预发布 2.1 版本,但无法安装。

编辑:我确实在服务器上安装了 dotnet 2.1。

这是我在服务器上看到的:

D:\>dotnet --info
Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

.NET Core SDKs installed:
  No SDKs were found.

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]

【问题讨论】:

  • 您是否安装了适用的 dotnet 2.1 sdk/runtime(即在服务器上)?
  • 是的。对不起,我忽略了这一点。但是,我没有看到 Entity Framework 的 2.1 版本。 EF 是否包含在 dotnet 2.1 中?
  • ...您确定您不会意外地在较旧的安装运行时下运行吗?鉴于您的 csproj 肯定是 2.1,在我看来,运行时是这里唯一的变量。
  • 我添加了来自 dotnet --info 的结果。安装了多个版本。但是,我从来没有跑到任何地方。当我尝试发布到服务器时,Visual Studio 会给出上述消息。
  • 根据docs.microsoft.com/en-us/aspnet/core/fundamentals/… 的建议,我删除了 AspNetCore.All 并将其替换为 AspNetCore.App。但是,我仍然收到 xame 消息。

标签: c# razor-pages .net-core-2.1


【解决方案1】:

我猜您取消了所有 2.1.x 升级,但最初是在 2.0.x 中开始您的项目的。 我只是通过降级并添加来手动编辑 cspoj 文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
    <TargetFramework>netcoreapp2</TargetFramework>

</PropertyGroup>


<ItemGroup>             
<PackageReference Include=
"Microsoft.AspNetCore.All" Version="2.0.3" />
<PackageReference Include=
"Microsoft.AspNetCore.Cors" Version="2.0.3" />                  
<PackageReference Include=
"Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.3" />                            
<PackageReference Include=
"Microsoft.EntityFrameworkCore.Tools" Version="2.0.3" PrivateAssets="All" />       
<PackageReference Include=
"Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.4" PrivateAssets="All" />
</ItemGroup>  


<ItemGroup>                      
<DotNetCliToolReferenceInclude=
    "Microsoft.EntityFrameworkCore.Tools.DotNet"Version="2.0.3" />   
<DotNetCliToolReferenceInclude=
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" /> 
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />       
</ItemGroup>

所以我认为您缺少&lt;DotNetCliToolReferenceInclude=&gt; 项目组。

【讨论】:

  • 感谢您的帮助。我确实是从 2.0 开始的。我不确定我是否理解。您是说(部分)我应该手动降级(通过手动编辑)然后使用 NuGet 升级吗?由于 2.0 中的问题,我正在尝试升级。
  • 猜是 pub.xml 文件。如果你想让我记下这个答案,请告诉我。如果有人想要快速修复降级,我会离开它。
【解决方案2】:

我遇到了同样的问题,但是我没有为正确的目标环境更新发布配置文件(.pubxml)

< TargetFramework>netcoreapp2.1< /TargetFramework>

关于前面的回答行

< DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />

显示在 2.1 版本中由于过时而被删除,现在包含在其中

【讨论】:

  • 更改 .pubxml 文件解决了这个问题。非常感谢!
  • 删除 Microsoft.EntityFrameworkCore.Tools.DotNet 为我修复了它。谢谢!
  • 你拯救了我的一天:D
  • 你拯救了我的一天。更改它正在工作的 pub.xml 文件..非常感谢。
【解决方案3】:

对我有帮助的只是删除 Properties > PublishProfiles 文件夹下的 .pubxml 文件,然后再次重新创建发布配置文件。

【讨论】:

    【解决方案4】:

    继续 joakimja 的帖子,您还可以通过 VS2017 IDE 更新 .pubxml 文件。右键单击您的项目并选择“发布”,然后单击“故障排除信息”行上的“配置”,然后转到“设置”选项卡,在这里您可以设置“目标框架”-实际上这应该自动只需打开对话框即可更新为“netcoreapp2.1”。单击“保存”,这将更新 pubxml 文件中的目标框架。然后再次尝试发布。

    【讨论】:

    • 非常混乱。它自动将其更新到正确版本的事实只会使它更加混乱。我想:“哦,但它已经设置正确了!”感谢您指出这一点! +1
    • 谢谢。完美的。用 2.2 解决了同样的问题
    【解决方案5】:
    1. 您可能需要先对项目进行清理。
    2. 在 Visual Studio 中右键单击项目文件。
    3. 单击属性选择应用程序 -> 目标框架 下拉并选择您要使用的 .Net Core Framework 版本。
    4. 重建您的解决方案。

    【讨论】:

    • 我还必须编辑我的发布配置,什么都不做,保存,然后发布工作。看起来发布配置文件有一个指向未自动更新的目标运行时的指针。
    【解决方案6】:

    我在尝试使用以下方法将升级后的解决方案部署到 AWS Lambda 时遇到了同样的问题(错误):

    dotnet lambda 无服务器部署

    原来我忘记更新我的 aws-lambda-tools-defaults.json 文件。

    "framework"     : "netcoreapp2.1",
    

    为处于相同情况的其他人添加。

    【讨论】:

      【解决方案7】:

      我被这个问题困扰了大约 3 个小时。最终,当我添加了一个 Nuget 包Microsoft.VisualStudio.Web.CodeGeneration.Design 时,出现了这个错误。这就是我为解决这个问题所做的:

      1) 删除了我的 .net core 项目的 bin 文件夹

      2) 将 dotnet 版本显式添加到 TargetFrameworkPackageReference2.1.0。您可以尝试添加最适合您的项目和 dotnet 版本的内容。

      3) 我用dotnet restore 恢复了项目,然后用dotnet build 构建了

      4) 最后,我的问题解决了,我不再收到这个错误。

      【讨论】:

        【解决方案8】:

        我尝试了我能找到的大多数建议,但最终解决问题的是从此处删除 Microsoft.AspNetCore.All 包:

        %userprofile%.nuget\packages\microsoft.aspnetcore.all\2.1.5\build\netcoreapp2.1\

        下一个版本恢复了正确的版本。

        【讨论】:

        • 我尝试了其他解决方案,但只有这个对我有用。
        【解决方案9】:

        抱歉回复晚了,

        我现在遇到了这个错误并找到了解决方案。

        我们需要将PublishProfiles中的TargetFramework版本更改为netcoreapp2.2

        <_SavePWD>True</_SavePWD>
        <_DestinationType>AzureWebSite</_DestinationType>
        <TargetFramework>netcoreapp2.2</TargetFramework>
        <SelfContained>false</SelfContained>
        <_IsPortable>true</_IsPortable>
        

        【讨论】:

          【解决方案10】:

          我删除了项目中的 obj 文件夹,该文件夹中的 json 文件指向之前构建的 2.2 版本。

          【讨论】:

            猜你喜欢
            • 2019-06-02
            • 2019-08-23
            • 2020-03-15
            • 2020-01-19
            • 2019-11-12
            • 2020-11-30
            • 2018-07-08
            • 2010-11-19
            • 1970-01-01
            相关资源
            最近更新 更多