Добавление полной.NET в библиотеку.NET Core

Я пишу библиотеку.NET Core, которую собираюсь опубликовать на NuGet, полностью совместимую с.NET.

Для этого я установил project.json следующим образом:

"frameworks": {
  "netstandard1.1": {
    "imports": "dnxcore50"
  }
}

Я хочу, чтобы эта библиотека использовала полную библиотеку.NET (назовем ее OtherLib). Я думал, что это возможно, если версия OtherLib.NET будет совместима с нестандартной версией моей библиотеки.

Но, похоже, нет... Вот ошибка:

Package OtherLib X.Y.Z is not compatible with netstandard1.1 (.NETStandard,Version=v1.1). Package OtherLib X.Y.Z supports:
  - net40 (.NETFramework,Version=v4.0)
  - net45 (.NETFramework,Version=v4.5)

Вот мой полный project.json:

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "OtherLib": "X.Y.Z"
  },
  "frameworks": {
    "netstandard1.1": {
      "imports": "dnxcore50"
    }
  }
}

Я подозреваю, что в этом есть что-то хитрое, чтобы заставить его работать, или, может быть, это просто невозможно?

Заранее спасибо. (Извините за мой английский, я не являюсь носителем языка)

2 ответа

Решение

Попробуйте изменить ваш project.json, изменив "netstandard1.1" на "net45":

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "OtherLib": "X.Y.Z"
  },
  "frameworks": {
    "net45": {
      "imports": "dnxcore50"
    }
  }
}

Я думал, что это возможно, если версия OtherLib.NET будет совместима с нестандартной версией моей библиотеки.

Нет, это невозможно. Версии.Net Framework являются надмножествами версий.Net Standard. поскольку OtherLib библиотека.Net Framework, вы не можете зависеть от нее в библиотеке.Net Standard.

Вам придется либо ограничить работу вашей библиотеки только на.Net Framework, либо удалить зависимость от OtherLib, (Возможно, сделав две версии вашей библиотеки: одну для.Net Standard, которая не зависит от OtherLib и один для.Net Framework, который делает.)

Другие вопросы по тегам