此版本的Microsoft.AspNetCore.All仅与netcoreapp2.1目标框架兼容

时间:2018-06-06 23:54:27

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

当我从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]

10 个答案:

答案 0 :(得分:69)

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

< TargetFramework>netcoreapp2.1< /TargetFramework>

关于早先回答这一行

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

显示在2.1版本中被删除,因为已经过时,现在包括在内

答案 1 :(得分:20)

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

答案 2 :(得分:5)

  1. 您可能需要先对项目进行清理。
  2. 右键单击Visual Studio中的项目文件。
  3. 单击属性,选择“应用程序”->“目标框架” 下拉菜单,然后选择要使用的.Net Core Framework版本。
  4. 重建您的解决方案。

答案 3 :(得分:4)

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

答案 4 :(得分:2)

我猜你已经完成了所有的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>

所以我认为你错过了<DotNetCliToolReferenceInclude=>项目组。

答案 5 :(得分:2)

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

  

dotnet lambda deploy-serverless

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

"framework"     : "netcoreapp2.1",

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

答案 6 :(得分:1)

对不起,我晚答复

我现在收到此错误,并找到了解决方法。

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

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

答案 7 :(得分:0)

enter image description here我被这个​​问题困扰了大约3个小时。最终,当我添加Nuget软件包$id = $_GET['deleteid']; $query = "delete from TABLE NAME where ID = $id"; 时,出现了此错误。这是我为解决此问题所做的事情:

1)删除了.net核心项目的 bin 文件夹

2)明确将dotnet版本添加到 TargetFramework ,并将 PackageReference 添加到 2.1.0 。您可以尝试添加最适合您的项目和dotnet版本的内容。

3)我使用Microsoft.VisualStudio.Web.CodeGeneration.Design恢复了项目,然后使用dotnet restore

进行了构建

4)最后,我的问题已解决,并且我不再收到此错误。

答案 8 :(得分:0)

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

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

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

答案 9 :(得分:0)

我删除了项目中的obj文件夹,该文件夹中包含来自先前版本的指向2.2版本的json文件。