2016-07-28 2 views
10

J'ai un cadre bibliothèque de classes de base .NET 1.0 qui cible .NET 4.6.1 et les références de la bibliothèque standard .NET 1.6.0 et 2.2.1 IdentitéRéférencer mscorlib 4.0.0.0 de .NET 1.0 Bibliothèque principale de classe

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

Dans mon projet, je suis juste créer les modèles d'identité, qui étendent les modèles-cadres de base d'identité (utilisateur, rôle, etc.). Lorsque je tente de compiler, cela arrive ...

enter image description here

enter image description here

Toute idée comment résoudre ce problème?

+0

Avez-vous ajouté une référence à mscorlib v4.0.0.0? – Tim

+0

@Tim, je ne suppose pas, car je ne suis pas sûr de savoir comment je le ferais dans une bibliothèque de classes .NET Core – series0ne

+0

Probablement de la même manière que d'autres dépendances sont ajoutées? Dans le fichier project.json? Je ne suis pas sûr à 100% car je n'ai pas encore beaucoup joué avec .NET Core 1.0. – Tim

Répondre

7

Il y a deux problèmes avec votre dossier de projet ici, un simple à résoudre, l'impossible à fixer;)

  • Votre projet ne cible net461 et netstandard1.6. Ce que votre projet.json dit est: Construire la cible pour netstandard1.6 et mentir à NuGet et prétendre que vous êtes net461 (que mensonge est ce que import fait ... ne me croyez pas, regardez-le;)). Et puisque votre projet.json a menti à NuGet, vous pouviez ajouter Microsoft.AspNet.Identity.EntityFramework. L'ajout de net461 et netstandard1.6 en parallèle ne vous aidera pas non plus car vous ne pouvez pas ajouter la dépendance alors.
  • La dépendance NuGet Microsoft.AspNet.Identity.EntityFramework est publiée en 2015 et basée sur .NET Framework (basé sur mscorlib) et non sur .NET Standard/.NET Core (basé sur System.Runtime). Le mensonge n'aide pas sur le fait que la dépendance est basée sur mscorlib et non System.Runtime.

Ce que vous pouvez essayer, le ciblage (correctement) en parallèle net461 et netstandard1.6 et essayer de faire une mise en œuvre parallèle avec Microsoft.AspNet.Identity.EntityFramework et Microsoft.AspNetCore.Identity.EntityFrameworkCore respectivement à l'aide #ifdefs. Cependant, à quel point le résultat serait utile, je n'ai aucune idée de ce que la bibliothèque résultante serait utilisée;)

+1

Réponse spectaculaire. Je vous remercie! – series0ne

+1

Merci beaucoup! J'ai cherché cette clarification pendant des heures !!! –

9

Microsoft a un paquet de nuget qui peut aider. Je ne connais pas les détails de la façon dont cela fonctionne, mais il résolu mes problèmes de dépendance:

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

Ou simplement exécuter ce dans la console de gestionnaire de paquets:

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

modifier: Ceci a été ajouté à un projet .net core 1.1.

+0

Étonnamment, cela a fonctionné, merci! –

+0

Merci Man. Travaillez comme un charme – Butsaty