Ответ 1
В .NET Core 1.0 и 1.1 необходимо было установить PackageTargetFallback
при обращении к пакетам, которые, как известно, работают на .NET Core, но официально не поддерживают его - например, PCL-библиотеки или библиотеки, созданные для устаревшего прокси-сервера dotnet
.
В связи с этим проект (.csproj
, .fsproj
,...) будет содержать строку, похожую на:
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
В большинстве случаев эту строку можно просто удалить, а проект должен быть создан, потому что .NET Core 2.0 уже определяет AssetTargetFallback
как net461
- это означает, что любой пакет NuGet, совместимый с .NET Framework 4.6.1 или выше может использоваться без дополнительной настройки.
Если это вводит больше ошибок сборки/восстановления, измените строку на:
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
Причиной изменения является то, что PackageTargetFallback
считается устаревшим и его следует заменить на AssetTargetFallback
, который ведет себя немного иначе.
Разрыв в оснастке заключается в том, что netcoreapp2.0
и netstandard2.0
автоматически устанавливает AssetTargetFallback
, который конфликтует с любым значением PackageTargetFallback
, определенным в файле проекта.