был восстановлен с использованием .NETFramework, Version = v4.6.1 вместо целевой структуры проекта - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь сослаться на пакет nuget, который явно .NetStandard2.0.Мы владеем исходным кодом для этого пакета и написали его для .netstandard.У нас есть конвейер CI, поэтому, когда мы запускаем этот код, он собирает и выпускает пакет nuget.Когда я пытаюсь ссылаться на полученный пакет nuget в моем текущем приложении .netCore, я получаю следующую ошибку:

was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.1'. This package may not be fully compatible with your project.

Это не имеет никакого смысла для меня.До сих пор я пытался выполнить следующие шаги отладки:

  • Ссылался на исходный код непосредственно как ссылку проекта на мой проект.Это отлично сработало.
  • Анализируя полученный пакет nuget в dotpeek, чтобы убедиться, что он на самом деле является пакетом .netstandard и это так.

Не уверен, что заставляет его думать, что он нацелился на любую точку.ниже показано, как выглядит моя конфигурация .csproj

<TargetFramework>netstandard2.0</TargetFramework>

Не уверен, имеет ли здесь значение какой-либо другой блок конфигурации, но дайте мне знать, если вам нужна дополнительная информация по этому вопросу.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

Я столкнулся с аналогичной проблемой, когда я публиковал свой собственный пакет NetStandard2.0 через артефакты Azure, а затем пытался использовать его в приложении netcore.

Оказалось, что проблема заключалась в том, что я имелназвал мой пакет так же, как существующий пакет NuGet.Мой нативный канал Azure Artifacts был правильно настроен в Visual Studio, но когда он пытается установить пакет, он сначала пробует канал NuGet по умолчанию и выбирает другой (который оказался только NetFramework), а не мой.

Как только я переименовал свой пакет в уникальный (я просто добавил свое собственное пространство имен) и переиздал, все это работало должным образом.

Я думаю, это может быть проблемой не для всех, но для меня.

0 голосов
/ 22 февраля 2019

Вы должны использовать все пакеты в вашем проекте, совместимые с .NETCoreApp, Version = v2.0.

В вашем сообщении об ошибке должно быть указано какое-то имя пакета, прежде чем "было".Например:

Package 'Microsoft.AspNet.WebApi.Client 5.2.2' was restored
Package 'EntityFramework 6.2.0' was restored 
...