Добавление полной.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, который делает.)