更新.Net Framework版本(4.6.2至4.7.2)后,无法评估GetPathsOfAllDirectoriesAbove()


12

我一直在从事的项目已从.NET Framework 4.6.2升级到4.7.2。在构建时,在不是我的代码的文件中,出现以下错误:

在此处输入图片说明

我还在项目属性的“构建”选项卡中看到相同的错误。

[2]

我很茫然-我已经寻找了错误,但很快就空了。有人遇到过和/或解决过这个问题吗?

Answers:


22

升级后,您的构建工具看起来从MSBUILD更改为Roslyn。Microsoft.Managed.Core.targets是Roslyn目标文件。

如果您安装了以下Nuget软件包:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  • Microsoft.Net。编译器

然后可能是造成问题的原因。升级Microsoft.CodeDom.Providers.DotNetCompilerPlatform到2.x并删除第二个。那应该解决问题。


这很微妙,但是您的意见帮助我弄清楚了-由于在我出门时完成了对4.7.2的更新,所以我实际上只有4.6.2-我让Visual Studio下载了SDK,但是在流程,在我们使用MSBuild时,它一定已经将项目构建器转换为Roslyn(如您所说)。恢复所有内容并使用已安装的4.7.2 SDK进行加载使问题消失了……
Matt

谢谢!!以我为例,我安装了Microsoft.Net.Compilers 2.0,似乎该版本没有冲突,但是在安装软件包升级后,安装了Microsoft.Net.Compilers 3.4,这一噩梦开始了。我刚刚卸载了Microsoft.Net.Compilers,现在该项目可以编译了:)
Jcis

我不小心投票了。需要等待一个小时才能更正。这个问题也与VS 2017 v2019有关。
smoore4

删除Microsoft.Net.Compilers可以修复它!+1
Benj Sanders

0

遇到相同的错误Microsoft.Net.Compilers-2.x(vs2017)和3.x(vs2019)之间的兼容性问题-从v3降级到v2专门针对仅具有VS2017的构建代理解决了该问题。根据roslyn-analyzers发布规范,v3要求使用VS 2019或更高版本

根据相关的错误Method 'System.String.GetPathsOfAllDirectoriesAbove' not found-VS2017甚至不会打开CSPROJ,这是有关兼容性的线索。

VS 2017-CSPROJ选项,用于安装Microsoft.Net.Compilersv3的缺失功能

在此处输入图片说明

VS 2017-安装缺少的功能

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.