报错内容: 当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标。请将 .NET Core 2.1 或更低版本设置。
在网上下载一些工程到自己电脑上编译额时候,经常会有这些报错,这里简单的记录下,
我解决问题的方法是:升级visual studio,我之前一直用的是vs2017,但是下载的项目需要用到net.core3.1,然而vs2017不支持,所以无论怎么搞都不行,所以尽量用比较新的IDE,微软官网也有文档:文档链接在这里~
一般项目的要求会写在工程的csproj里面,例如:
//这是github下载的protogen的资源文件的csproj文档
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<VersionPrefix>$(ProtoGenVersion)</VersionPrefix>
<OutputType>Library</OutputType>
<TargetFrameworks>net462;netcoreapp3.1;net5.0</TargetFrameworks>
<Configurations>Debug;Release;VS</Configurations>
<AssemblyName>protogen</AssemblyName>
<Title>protobuf-net command-line "global tool" for .NET code-generation from .proto schema files</Title>
<GrpcTools>false</GrpcTools>
<ApplicationIcon>protobuf-net.ico</ApplicationIcon>
<StartupObject />
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='netcoreapp3.1' or '$(TargetFramework)'=='net5.0'">
<GrpcTools>true</GrpcTools>
</PropertyGroup>
<PropertyGroup Condition="'$(GrpcTools)'=='true'">
<DefineConstants>$(DefineConstants);GRPC_TOOLS</DefineConstants>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="../protobuf-net/protobuf-net.csproj" />
<ProjectReference Include="../protobuf-net.Reflection/protobuf-net.Reflection.csproj" />
<PackageReference Include="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Include="protobuf-net.Grpc.Reflection" Version="1.0.123" Condition="'$(GrpcTools)'=='true'" />
<PackageReference Include="Grpc.Net.Client" Version="2.33.1" Condition="'$(GrpcTools)'=='true'" />
</ItemGroup>
</Project>
里面会有对环境的要求,所以得看看自己环境能不能满足要求~