.NetStandard проблем с пакетами nuget с .NETFramework - PullRequest
0 голосов
/ 22 апреля 2019

У меня 3 проекта:

  1. SDK в .NETStandard 2.0 и я установил System.IdentityModel.Tokens.Jwt (5.4.0) пакет nuget.
  2. ASP.NET Core API в .NETCore 2.1
  3. ASP.NET API в .NETFramework 4.7.2

И ссылается на SDK в обоих API, у меня нет проблем в .NETCore API, но я получил ошибку в .NetFramework API:

Could not load file or assembly 'Microsoft.IdentityModel.Tokens, Version=5.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Не предполагается ли поддерживать .NEtStandard как в .NETFramework, так и в ядре .NET? Что я пропустил?

1 Ответ

1 голос
/ 23 апреля 2019

Расширенный комментарий выше.

Многие пакеты NuGet содержат разные сборки для разных целевых платформ (например, netxx и netstandardxx), и эти сборки не являются взаимозаменяемыми.

Поэтому вы нажимаетепроблема, когда структура проекта выглядит следующим образом:

net472 project --depends -> netstandard20 project - зависит от -> System.IdentityModel.Tokens.Jwt (netstandard20)

, потому чтотаким образом, проект net472 использует копию пакета NuGet для netstandard20, которая вызывает ошибку.

Существует несколько способов ее устранения, и ваше решение является лишь одним из них, которое изменяет проект netstandard20 так, чтобымульти-таргетинг (netstandard20 и net461).Это говорит NuGet, чтобы он служил правильной сборкой для проекта net472, и тогда все начинает работать.

...