Ссылка на mscorlib 4.0.0.0 from.NET библиотека классов Core 1.0

У меня есть библиотека классов .NET Core 1.0, которая нацелена на .NET 4.6.1 и ссылается на стандартную библиотеку .NET 1.6.0 и Identity Framework 2.2.1

.в JSON

{
    "version": "1.0.0-*",

    "dependencies": {
        "Microsoft.AspNet.Identity.EntityFramework": "2.2.1",
        "System.Runtime": "4.1.0",
        "NETStandard.Library": "1.6.0"
    },

    "frameworks": {
        "netstandard1.6": {
            "imports": [
                "net461"
            ]
        }
    }
}

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

enter image description here

enter image description here

любые идеи как это решить?

2 ответов


здесь две проблемы с файлом проекта, Один простой в исправлении, один невозможно исправить;)

  • проект не цель net461 и netstandard1.6. Какой ваш проект.json говорит: построить цель для netstandard1.6 и лгать NuGet и утверждают, что вы net461 (Это ложь, что import делает ... не верьте мне, посмотрите его;)). И после твоего проекта.json солгал NuGet, вы где можете добавить Microsoft.AspNet.Identity.EntityFramework. Добавление net461 и netstandard1.6 параллельно вам это тоже не поможет, потому что вы не можете добавить зависимость.
  • зависимость NuGet Microsoft.AspNet.Identity.EntityFramework выпущен в 2015 году и на основе .NET Framework (на основе mscorlib) и не на .NET Standard / .NET Core (System.Во время выполнения на основе). Ложь не помогает о том, что зависимость основана на mscorlib, а не System.Runtime.

что вы могли бы попробовать, это таргетинг (правильно) параллельно net461 и netstandard1.6 и попробуйте сделать параллель реализация с Microsoft.AspNet.Identity.EntityFramework и Microsoft.AspNetCore.Identity.EntityFrameworkCore соответственно, используя #ifdefs. Однако, насколько полезным будет результат, я понятия не имею, для чего будет использоваться результирующая библиотека;)


Microsoft имеет пакет nuget, который может помочь. Я не знаю особенностей того, как это работает, но он решил мои проблемы с зависимостями:

https://www.nuget.org/packages/Microsoft.NETCore.Portable.Compatibility/

или просто запустите это в консоли диспетчера пакетов:

Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1

изменить: Это было добавлено в проект .net core 1.1.