Различные ошибки при использовании сборки платформы .NET в стандарте .NET с помощью nuget vs руководство пользователя - PullRequest
0 голосов
/ 04 ноября 2018

Я создал веб-приложение ASP.NET Core. В этом решении у меня также есть проект .NET Standard 2.0.

Сначала я добавил ссылку из проекта .NET Standard в dll (.NET Framework 4.6.1) вручную без каких-либо проблем, и он работает нормально. Затем я создал пакет Nuget для библиотеки .NET Framework и попытался установить этот пакет в проекте .NET Standard.

Я получил ошибку

Package xxx was restored using .net framework, version = 4.6.1. instead of project target framework '.NET standard, version = v2.0'. This package may not be fully compatible with your project.

Я запутался, почему я могу использовать сборку .net framework при обращении к ней вручную, и когда она устанавливается через nuget, я получаю эту ошибку.

Более того, когда я устанавливаю этот nuget в .NET Core 2.1. проект (то же решение) я получаю ту же ошибку.

1 Ответ

0 голосов
/ 04 ноября 2018

Это предупреждение относится только к NuGet. При добавлении dll вручную никакая часть в сборке не проверяет целевую структуру этой dll (теоретически большинство dll-файлов должны содержать метаданные сборки TargetFrameworkAttribute, но это не обязательно), и вы несете ответственность за используя совместимую сборку.

Чтобы отключить это предупреждение NuGet (и признать, что могут быть проблемы во время выполнения при использовании пакета, изначально созданного для .NET Framework), вы можете добавить эти NoWarn метаданные в ссылку на ваш пакет:

<PackageReference Include="My.Package" Version="1.2.3" NoWarn="NU1603" />
...