簡體   English   中英

更新 .Net Framework 版本(4.6.2 到 4.7.2)后無法評估 GetPathsOfAllDirectoriesAbove()

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

我一直在做的一個項目從 .NET Framework 4.6.2 升級到 4.7.2。 在構建時,在不是我的代碼的文件中,我收到以下錯誤:

在此處輸入圖像描述

我還在項目屬性的構建選項卡中看到了相同的錯誤。

[2]

我不知所措-我已經搜索了錯誤並且空了。 有沒有人遇到過和/或解決過這個問題?

升級后,您的構建工具似乎從 MSBUILD 更改為 Roslyn。 Microsoft.Managed.Core.targets是 Roslyn 目標文件。

如果您安裝了以下 Nuget 軟件包:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  • Microsoft.Net.Compilers

那么可能是導致問題的原因。 Microsoft.CodeDom.Providers.DotNetCompilerPlatform升級到 2.x 並刪除第二個 那應該可以解決問題。

遇到同樣的錯誤 - Microsoft.Net.Compilers 2.x (vs2017) 和 3.x (vs2019) 之間的兼容性問題 - 從 v3 降級到 v2 專門解決了我們只有 VS2017 的構建代理的問題。 v3 根據 roslyn-analyzers 發布規范需要 VS 2019 或更高版本

根據相關錯誤Method 'System.String.GetPathsOfAllDirectoriesAbove' not found - VS2017 甚至不會打開作為兼容性線索的 CSPROJ。

VS 2017 - 為Microsoft.Net.Compilers v3 安裝缺失功能的 CSPROJ 選項

在此處輸入圖像描述

VS 2017 - 安裝缺少的功能

在此處輸入圖像描述

當我在舊項目中更新 Microsoft.Net.Compilers 時,這發生在我身上。 完全刪除 Microsoft.Net.Compilers,然后更新 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 解決了我的問題。

嘗試使用舊版本的 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) 進行構建。

當您通過 nuget 升級以下庫時,通常會出現此錯誤

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Microsoft.Net.Compilers

伙計們,如果您的項目由於此錯誤而未加載。 只需通過資源管理器轉到該項目位置並手動刪除 obj 文件夾。

然后右鍵單擊項目並重新加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM