A project I have been working on was upgraded from .NET Framework 4.6.2 to 4.7.2. On build, in a file that is not my code, I get the following error:
I also
Ran into the same error - a compatibility issue between Microsoft.Net.Compilers
2.x (vs2017) and 3.x (vs2019) - downgrading from v3 to v2 fixed the issue specifically on our build agents which only had VS2017. v3 requires VS 2019 or later per roslyn-analyzers release spec.
Per the related error Method 'System.String.GetPathsOfAllDirectoriesAbove' not found
- VS2017 would not even open the CSPROJ which was a clue about compatibility.
Microsoft.Net.Compilers
v3This happned to me when I updated Microsoft.Net.Compilers in an old project. Removing Microsoft.Net.Compilers completely, and then updating Microsoft.CodeDom.Providers.DotNetCompilerPlatform resolved my problem.
Looks like after upgrading your build tool is changed from MSBUILD to Roslyn. Microsoft.Managed.Core.targets is Roslyn target file.
if you have following Nuget packages installed:
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers
Then possibly it's causing the issue. Upgrade the Microsoft.CodeDom.Providers.DotNetCompilerPlatform
to 2.x and remove the second one. That should fix the issue.