将.NET Core重新定向到net471、net472

13

我的 .Netcore 2.0 项目可以针对 net471 进行目标定位。 但是当我升级到 .NET 2.1 后,无法将目标定位更改为 net471net472

在最新版本的 .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) 

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

在大多数情况下,这是因为 .NET Core SDK 或 Nuget 版本过旧。因此,请尝试更新 Nuget 的版本。 - Set
Microsoft.AspNetCore.App是新的,随着Asp.net core 2.1一起发布。 - Hung Quach
3
这条消息的内容是:AspNetCore.App 是一个针对 .NET Core 2.1 的元包,它被用来避免引用数十个较小的 ASP.NET Core 组件。如果你想将目标平台改为 .NET Framework,你需要移除 AspNetCore.App 并添加你所需的单个包,例如 Microsoft.AspNetCore.Mvc - Tseng
1
最简单的方法是创建一个新的空ASP.NET Core项目,该项目针对.NET Framework 4.7.2,然后从中复制包引用,并将.AspNetCore.All(或.AspNetCore.All)包替换为这些引用,同时在csproj中更改目标平台。 - Tseng
谢谢,@Tseng,你的解决方案很好用。 - Hung Quach
2个回答

34

看起来 Microsoft.AspNetCore.AppMicrosoft.AspNetCore.All 包仅适用于 netcoreapp2.0netcoreapp2.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" />


1

Hung Quach的答案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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接