I received the same error, but I had simply forgotten to include the
<LangVersion>8.0</LangVersion>
attribute in ALL the .csproj files in the solution.
The following is my current c# 8 setup:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>8.0</LangVersion>
<Nullable>enable</Nullable>
<NullableContextOptions>enable</NullableContextOptions>
</PropertyGroup>
I found the following documents to be the most helpful when migrating from core 2.2 to 3.x:
MSDN 2.2 -> 3.0
MSDN 3.0 -> 3.1