Обновление до .NET Core 3 в проекте, который также использует netstandard2.1, не выполняется в Rider - PullRequest
0 голосов
/ 30 сентября 2019

Я работаю на macOS, и проект, над которым я работаю, только что обновлен с .NET Core 2 до .NET Core 3. Проблема в том, что я больше не могу строить свой проект в Rider. Если я пытаюсь встроить его в терминал, используя сборку dotnet, сборка завершается успешно. В моем проекте есть несколько подпроектов, которые используют netstandard2, но это не должно быть проблемой (так как он работает в терминале). Я получаю следующее сообщение об ошибке:

Project1 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Project2 supports: netstandard2.1 (.NETStandard,Version=v2.1)

Я попытался добавить файл global.json, в котором указано, что я использую версию 3 .NET Core, но это не помогло.

Если я один раз запускаю сборку dotnet в терминале, то новая сборка Rider будет успешной. Так что все работает, но просто раздражает всегда сначала встраивать терминал.

Вывод dotnet --info: dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.0.100
 Commit:    04339c3a26

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.14
 OS Platform: Darwin
 RID:         osx.10.14-x64
 Base Path:   /usr/local/share/dotnet/sdk/3.0.100/

Host (useful for support):
  Version: 3.0.0
  Commit:  7d57652f33

.NET Core SDKs installed:
  2.2.300 [/usr/local/share/dotnet/sdk]
  2.2.401 [/usr/local/share/dotnet/sdk]
  2.2.402 [/usr/local/share/dotnet/sdk]
  3.0.100 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.7 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.7 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

1 Ответ

1 голос
/ 30 сентября 2019

Я обнаружил, что проблема была в Rider. Обходной путь должен изменить Механизм восстановления PackageReference Файл> Настройки> Построение, Выполнение, Развертывание> NuGet ) на MSBuild .

Screenshot of Rider

Эта проблема будет исправлена ​​в более поздней версии Rider, поэтому после возврата версии рекомендуется переключиться на Embedded . Разница между MSBuild и Embedded :

MSBuild просто вызывает внешнюю задачу MSBuild;Встроенный напрямую вызывает API NuGet внутри процесса Rider. Встроенный должен работать намного быстрее, и он предоставляет дополнительные журналы, которые могут быть полезны при сбое восстановления

Причина проблемы:

[...], потому что Rider 2019.2 EAP2все еще использовал NuGet 4.9 для внутреннего пользования;эта версия не имеет надлежащей поддержки .NET Core 3.0 / .NET Standard 2.1. В Rider 2019.2 RTM мы собираемся обновить внутреннюю версию NuGet до 5.1.

Источник цитат и скриншотов: https://youtrack.jetbrains.com/issue/RIDER-29888

...