Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GetPathsOfAllDirectoriesAbove() cannot be evaluated after updating .Net Framework version (4.6.2 to 4.7.2)

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:

enter image description here

I also see the same error in the build tab of my project properties.

[2]

I'm at a loss- I've searched for the error and am coming up empty. Has anyone encountered and/or resolved this before?

like image 600
Matt Avatar asked Dec 10 '19 22:12

Matt


2 Answers

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.

like image 157
vendettamit Avatar answered Oct 19 '22 16:10

vendettamit


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.

VS 2017 - CSPROJ Option to Install Missing Features for Microsoft.Net.Compilers v3

enter image description here

VS 2017 - Installing Missing Features

enter image description here

like image 10
SliverNinja - MSFT Avatar answered Oct 19 '22 16:10

SliverNinja - MSFT