2016-06-08 3 views
9

Я создал новую библиотеку классов .NET Core и добавил пакет Nuget с внутреннего сервера Nuget. Я начал получать следующее сообщение об ошибке:Один или несколько пакетов несовместимы с .NETStandard, Version = v1.5

Package XXXX is not compatible with netstandard1.5 (.NETStandard,Version=v1.5). Package XXXX 1.0 supports: net45 (.NETFramework,Version=v4.5) One or more packages are incompatible with .NETStandard,Version=v1.5.

Я обновил файл project.json выглядеть следующим образом, но та же ошибка сохраняется.

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "XXXXX": "1.0.0", 
    "NETStandard.Library": "1.5.0-rc2-24027" 
    }, 

    "frameworks": { 
    "netstandard1.5": { 
     "imports": [ 
     "dnxcore50", 
     "portable-net45+win8" 
     ] 
    } 
    } 
} 

У кого-нибудь есть идеи по этому вопросу?

+3

Вы действительно, * действительно * намного лучше, ожидая, пока они не закончатся. Создание стандартов ~ 8 - это суматоха, а не стандарт. Даже если вы сегодня разобрались, завтра он перестанет работать. Наличие этих промежуточных бесконечных бета-версий открытого исходного кода довольно нова для программистов .NET, оно работает только в том случае, если вы активно участвуете в проекте. –

+1

@HansPassant Насколько я понимаю, .NET Platform Standard теперь выполняется. В будущем будут добавлены изменения, но не будут нарушены. –

ответ

10

T1; dr - это должно быть netstandardall the way down!

Чтобы установить пакет в проект .NET Core, пакет и все его зависимости должны быть совместимы с netstandard1.X.

Похоже, что ваш проект цели netstandard1.5, но зависит от пакета, который нацелен только на цели net45. Единственный способ разрешить это - заменить зависимость или обновить ее до версии, которая нацелена на netstandard.

В некоторых случаях imports позволит вам использовать Portable Class Library в приложении .NET Core. Это не общее лекарство для несовместимых пакетов, а скорее временное исправление, которое работает с пакетами, которые уже нацелены на меньший API.

+1

Я видел пару ссылок, в которых говорится, что «portable-net4 + win8» с net4 является каркасной версией, которая исправит эту проблему. Например. https://docs.efproject.net/en/latest/miscellaneous/rc1-rc2-upgrade.html#using-imports-in-project-json. –

+1

@GrandMasterT Работает ли импорт портативной сети net45 + netcore45 + wp8'? –

+2

@GrandMasterT Это может работать только в том случае, если пакет представляет собой портативную библиотеку классов. Кажется, это не ваш пакет. – svick