Referencing mscorlib 4.0.0.0 from .NET Core 1.0 class library

.net-core c# class-library entity-framework

Question

I have a .NET Core 1.0 class library which targets .NET 4.6.1 and references the .NET Standard Library 1.6.0 and Identity Framework 2.2.1

project.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"
            ]
        }
    }
}

In my project I'm just creating the identity models, which extend the base Identity Framework models (User, Role etc). When I try to compile, this happens...

enter image description here

enter image description here

Any ideas how to resolve this?

1
10
7/28/2016 8:49:21 PM

Accepted Answer

There are two problems with your project file here, one simple to fix, one impossible to fix ;)

  • Your project does not target net461 and netstandard1.6. What your project.json says is: Build target for netstandard1.6 and lie to NuGet and claim you are net461 (that lying is what import does ... do not believe me, look it up ;)). And since your project.json lied to NuGet, you where able to add Microsoft.AspNet.Identity.EntityFramework. Adding net461 and netstandard1.6 in parallel will not help you either because you cannot add the dependency then.
  • The NuGet dependency Microsoft.AspNet.Identity.EntityFramework is released in 2015 and based on the .NET Framework (mscorlib based) and not on .NET Standard / .NET Core (System.Runtime based). The lying does not help about the fact that the dependency is based on mscorlib and not System.Runtime.

What you could try, is targeting (correctly) in parallel net461 and netstandard1.6 and try to do a parallel implementation with Microsoft.AspNet.Identity.EntityFramework and Microsoft.AspNetCore.Identity.EntityFrameworkCore respectively using #ifdefs. However, how useful the result would be, I have no idea for what the resulting library would be used ;)

9
7/31/2016 9:11:20 PM

Popular Answer

Microsoft has a nuget package that can help. I don't know the specifics of how it works but it resolved my dependency issues:

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

Or simply run this in the package manager console:

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

edit: This was added to a .net core 1.1 project.



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow