将 .net 核心 2.2 迁移到 3.1 问题

migrate .net core 2.2 to 3.1 issue

安装 .NET core SDK 3.1 并将我所有项目的 SDK [在我的解决方案中] 从 .NET core SDK 2.2 升级到 3.1,并将所有包(如扩展)更新到 3.1 版本后,我成功构建了所有项目我的解决方案。

但后来我得到了这个错误:

C:\Program Files\dotnet\sdk.1.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(59,5): error NETSDK1083: The specified RuntimeIdentifier 'win7-64' is not recognized. C:\Program Files\dotnet\sdk.1.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(59,5): error NETSDK1083: The specified RuntimeIdentifier 'win7-86' is not recognized.

这是我的 WebApi.csproj:

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

  <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
    <SccAuxPath>SAK</SccAuxPath>
    <SccLocalPath>SAK</SccLocalPath>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <PropertyGroup>
    <RuntimeIdentifiers>win7-64;win7-86;ubuntu.16.04-x64;win10-x64;osx.10.11-x64</RuntimeIdentifiers>
  </PropertyGroup>

  <PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <LangVersion>7.1</LangVersion>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <NoWarn>1591</NoWarn>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <NoWarn>1701;1702;1591</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <None Remove="swagger.css" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="xxxxxx" Version="x.x.x" />
  </ItemGroup>


  <ItemGroup>
    <ProjectReference Include="..\xxxx.csproj" />
  </ItemGroup>

</Project>

正如@Neil 所说

Remove the whole 'runtimeIdentifiers' section, you only need it if you are doing cross-platform work.

这样解决了我的问题。