GetPathsOfAllDirectoriesAbove () не может быть оценен после обновления версии .Net Framework (4.6.2 до 4.7.2)

12

Проект, над которым я работал, был обновлен с .NET Framework 4.6.2 до 4.7.2. При сборке в файле, который не является моим кодом, я получаю следующую ошибку:

введите описание изображения здесь

Я также вижу ту же ошибку на вкладке сборки в свойствах моего проекта.

[2]

Я в растерянности - я искал ошибку и выхожу пустым. Кто-нибудь сталкивался и / или решил эту проблему раньше?

Matt
источник

Ответы:

22

Похоже, после обновления ваш инструмент сборки изменился с MSBUILD на Roslyn. Microsoft.Managed.Core.targets - целевой файл Roslyn.

если у вас установлены следующие пакеты Nuget:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform

  • Microsoft.Net.Compilers

Тогда возможно это вызывает проблему. Обновите Microsoft.CodeDom.Providers.DotNetCompilerPlatformдо 2.x и удалите второй. Это должно решить проблему.

vendettamit
источник
это было незаметно, но то, что вы сказали, помогло мне разобраться - так как обновление до 4.7.2 было сделано, пока я отсутствовал, у меня фактически была только 4.6.2 - и я позволил Visual Studio загрузить SDK, но в процесс, он должен был преобразовать конструктор проекта в Roslyn, пока мы используем MSBuild (как вы сказали). Возврат всего и загрузка его с уже установленным 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
Бендж Сандерс
0

Натолкнулся на ту же ошибку - проблема совместимости между Microsoft.Net.Compilers2.x (vs2017) и 3.x (vs2019) - понижение с v3 до v2 решило проблему специально для наших агентов сборки, которые имели только VS2017. v3 требует VS 2019 или более поздней версии для спецификации выпуска roslyn-анализаторов .

По соответствующей ошибке Method 'System.String.GetPathsOfAllDirectoriesAbove' not found- VS2017 даже не откроет CSPROJ, который был ключом к совместимости.

VS 2017 - опция CSPROJ для установки недостающих функций для Microsoft.Net.Compilersv3

введите описание изображения здесь

VS 2017 - Установка недостающих функций

введите описание изображения здесь

SliverNinja - MSFT
источник