2016-07-14 10 views
11

मैंने dotnet new -t lib कमांड के साथ एक नया .NET कोर प्रोजेक्ट बनाया है। यह मेरे ईएफ संदर्भ के लिए एक कक्षा पुस्तकालय है। यह मेरा project.json:ईएफ 7 .NET कोर टूल्स त्रुटि

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "debugType": "portable" 
    }, 
    "dependencies": {}, 
    "frameworks": { 
    "netstandard1.6": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0", 
     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0", 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
     } 
    } 
    } 
} 

जब मैं dotnet restore आदेश मैं इस त्रुटि मिल रही चलाएँ:

error: Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package Microsoft.EntityFrameworkCore.Tools 1.0.0-preview2-final supports: 

मैं कैसे netstandard1.6 साथ एफई कोड पहले उपयोग कर सकते हैं?

+0

खबरदार के लिए टूलींग का उपयोग कर कि एनीटी फ्रेमवर्क क्लास लिब्रीज़ का समर्थन नहीं करता है इसलिए 'dotnet ef' करना विफल हो जाएगा। वर्कअराउंड के लिए https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#targeting-class-library-projects-is-not-supported देखें। –

+0

@JohanB इसे आंशिक रूप से '--startup-project' वर्कअराउंड का उपयोग करके संबोधित किया गया है, उदाहरण के लिए:' dotnet ef --startup-project ../ProjectThatCanRunCommand/ माइग्रेशन इनिट डीबी जोड़ें, इस पर एक नज़र डालें: [पैरामीटरेट निर्देशिकाएं dotnet-ef] (https://github.com/aspnet/EntityFramework/pull/5680) –

+0

@ हामिदमोसाल्ला यह एक समाधान है जिसे मैं ढूंढ रहा हूं। क्या आप इस टिप्पणी के साथ अपना उत्तर अपडेट कर सकते हैं ताकि मैं इसे सही उत्तर के रूप में चिह्नित कर सकूं? – alexxjk

उत्तर

14

this के अनुसार, "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" एक उपकरण खंड में पंजीकृत किया जाना चाहिए project.json में:

{ 
"version": "1.0.0-*", 
"description": "Class Library", 
"frameworks": { 
    "netstandard1.6": { 
    "imports": [ 
    "dnxcore50" 
    ] 
} 
}, 

"dependencies": { 
"NETStandard.Library": "1.6.0", 
"Microsoft.EntityFrameworkCore": "1.0.0", 
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0" 
}, 
"tools": { 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
} 
} 

इसके अलावा यह एक अच्छा विचार imports उपयोग करने के लिए है, क्योंकि एफई कोर के निर्भरता से कुछ अभी भी नहीं है .NETStandard का समर्थन करें, लेकिन आपके मामले में मैंने जांच की है और यह आयात के बिना भी काम करता है।

जोहान बी की टिप्पणी है, जो एफई उपकरण में कहा गया है अब के लिए वर्ग पुस्तकालयों के साथ नहीं किया जा सकता है, यह आंशिक रूप से --startup-project वैकल्पिक हल का उपयोग कर, उदाहरण के लिए द्वारा संबोधित किया जाता है के बारे में: dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb, अधिक जानकारी: Parameterize directories used by dotnet-ef.