我一直在从事的项目已从.NET Framework 4.6.2升级到4.7.2。 在构建时,在不是我的代码的文件中,出现以下错误:
在项目属性的“构建”选项卡中,我也看到相同的错误。
[
我很茫然-我正在寻找错误,而且空无一人。以前有没有人遇到和/或解决过这个问题?
答案 0 :(得分:5)
当我在一个旧项目中更新Microsoft.Net.Compilers时,这发生了。 完全删除Microsoft.Net.Compilers,然后更新Microsoft.CodeDom.Providers.DotNetCompilerPlatform解决了我的问题。
答案 1 :(得分:4)
升级后的构建工具看起来像从MSBUILD更改为Roslyn。 Microsoft.Managed.Core.targets是Roslyn目标文件。
如果已安装以下Nuget软件包:
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers
然后可能是造成问题的原因。将Microsoft.CodeDom.Providers.DotNetCompilerPlatform
升级到2.x,然后删除第二个。那应该解决问题。
答案 2 :(得分:3)
遇到相同的错误-Microsoft.Net.Compilers
2.x(vs2017)和3.x(vs2019)之间的兼容性问题-从v3降级到v2专门针对仅具有VS2017的构建代理解决了该问题。 v3 requires VS 2019 or later per roslyn-analyzers release spec。
每个相关错误Method 'System.String.GetPathsOfAllDirectoriesAbove' not found
-VS2017甚至无法打开CSPROJ,这是有关兼容性的线索。
Microsoft.Net.Compilers
v3的缺失功能答案 3 :(得分:2)
当尝试使用旧版本的 Visual Studio 编译 VS2019 项目时(例如,在构建服务器上或在 Azure DevOps 中),也会发生这种情况。
如果在应用答案 https://stackoverflow.com/a/59276492/2279059 中的解决方案后,错误变为
##[error]CSC(0,0): Error CS1617: Invalid option '8.0' for /langversion
那么很可能就是这种情况。然后,解决方案是使用正确版本的 Visual Studio (2019) 进行构建。