2016-07-14 17 views
11

dotnet new -t lib komutuyla yeni bir .NET Çekirdek projesi oluşturdum. EF Bağlamım için bir sınıf kütüphanesi. Bu benim project.json:EF 7 .NET Çekirdek araçları hatası

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

Ben bu hatayı alıyorum dotnet restore komutu çalıştırın:

Ben netstandard1.6 ile EF Kod Önce nasıl kullanabilirim
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: 

?

+0

takım için kullanmakta sakının Johan B'nin kısmen örneğin --startup-project geçici çözümü kullanılarak giderilir, şimdilik sınıf kitaplıkları ile kullanılamaz ef araçları bildiren açıklama, ilgili

Enity Framework, henüz sınıf kütüphanelerini desteklemiyor. Bu yüzden dotnet ef işlevi başarısız oluyor. Geçici çözümler için bkz. Https://docs.efproject.net/en/latest/miscellaneous/cli/dotnet.html#targeting-class-library-projects-is-not-supported. –

+0

@JohanB Kısmen '--startup-project' çözümünü kullanarak ele alınır, örneğin: dotnet ef --startup-project ../ProjectThatCanRunCommand/ göçmenleri InitDb'ye ekleyin, şuna bir bakın: [tarafından kullanılan dizinleri parametrele dotnet-ef] (https://github.com/aspnet/EntityFramework/pull/5680) –

+0

@HamidMosalla Bu aradığım bir çözüm. Cevabınızı bu yoruma bildirebilir misiniz? Böylece doğru bir yanıt olarak işaretleyebilirim? – alexxjk

cevap

14

this göre, "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" project.json bir araçlar kısmında tescil edilmelidir:

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

Ayrıca imports kullanmak için iyi bir fikirdir, EF Core bağımlılıkları bazıları hala yok çünkü .NETStandard desteği, ancak senin durumunda kontrol ettim ve ithalat olmadan bile çalışır. dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb, daha fazla bilgi: Parameterize directories used by dotnet-ef.