Asp.net core 将.NET核心重新定位为net471、Net472

Asp.net core 将.NET核心重新定位为net471、Net472,asp.net-core,.net-core,asp.net-core-2.0,.net-core-2.1,Asp.net Core,.net Core,Asp.net Core 2.0,.net Core 2.1,My.Netcore 2.0项目可以针对net471。 但是当我升级到.NET2.1时,我无法重新定位net471或net472 我可以在最新版本的.NET core中重新定位目标吗 Severity Code Description Project File Line Suppression State Error NU1202 Package Microsoft.AspNetCore.App 2.1.0 is not compatible with net471 (.NETFramework

My.Netcore 2.0项目可以针对
net471
。 但是当我升级到.NET2.1时,我无法重新定位
net471
net472

我可以在最新版本的.NET core中重新定位目标吗

Severity Code Description Project File Line Suppression State
Error NU1202 Package Microsoft.AspNetCore.App 2.1.0 is not compatible with net471 (.NETFramework,Version=v4.7.1). Package Microsoft.AspNetCore.App 2.1.0 supports: netcoreapp2.1 (.NETCoreApp,Version=v2.1) 


它看起来像是
Microsoft.AspNetCore.App
Microsoft.AspNetCore。所有
软件包都只能使用
netcoreapp2.0
netcoreapp2.1
版本

要以.NET Framework为目标,即
net471、net472
,必须删除这些包并手动添加引用

在我的例子中,我删除了
Microsoft.AspNetCore.App
,并添加了如下引用

<PackageReference Include="Microsoft.AspNetCore" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Options" Version="2.1.1" />

洪奎奇的答案是正确的,99%正确。但是我发现它少了两个包裹。下面是完整的.csproj,包括两个缺少的项目参考:

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

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
  </ItemGroup>

</Project>

网络472

在大多数情况下,这是因为.NET Core SDK或Nuget的版本已经过时。因此,尝试更新NugetMicrosoft.AspNetCore.App的版本是新版本,随附Asp.net core 2.1消息内容
AspNetCore.App
是一个针对.NETCore2.1的元包。它的使用使我们不必引用几十个较小的ASP.NET核心程序集。如果您想重新定位到.NET Framework,您必须删除
AspNetCore.App
并添加所需的单个软件包,即
Microsoft.AspNetCore.Mvc
最简单的方法是,创建一个新的空ASP.NET Core项目,以.NET Framework 4.7.2为目标,然后从中复制包引用,并用这些引用替换
.AspNetCore.All
(或
.AspNetCore.All
)包,以及更改CSProjTanks中的目标平台,@Tseng您的解决方案工作正常。
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
  </ItemGroup>

</Project>