2016-07-14 1 views
11

dotnet new -t lib 명령으로 새 .NET Core 프로젝트를 만들었습니다. 내 EF 컨텍스트를위한 클래스 라이브러리입니다. 이것은 내 project.json :EF 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 명령을 실행

내가 netstandard1.6와 EF 코드 먼저 사용 방법
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

툴링에 대한을 사용하는 것을주의 요한 B의이 부분적으로 예를 들어, --startup-project 해결 방법을 사용하여 해결됩니다, 지금은 클래스 라이브러리와 함께 사용할 수 없습니다 EF 도구를 말한다 코멘트에 관한

Enity Framework는 클래스 라이브러리를 지원하지 않습니다. 따라서'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/ migrations InitDb'를 추가하십시오. dotnet-ef] (https://github.com/aspnet/EntityFramework/pull/5680) –

+0

@HamidMosalla 이것은 내가 찾고 있었던 해결책이다. 이 답글로 답글을 업데이트하여 올바른 답으로 표시 할 수 있습니까? – 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을 사용하는 것이 좋습니다 인을의 EF 코어의 일부 종속성이 아직 없기 때문에 귀하의 경우에는 .NETStandard를 지원하고 검사했지만 가져 오기가 없어도 작동합니다. dotnet ef --startup-project ../ProjectThatCanRunCommand/ migrations add InitDb, 더 많은 정보 : Parameterize directories used by dotnet-ef.