ASP.Net 5 클래스 라이브러리 패키지의 EntityFramework 명령?

.net-core asp.net-core entity-framework-core

문제

내 첫 ASP.Net 웹 응용 프로그램을 개발하려고하고 내 솔루션에 두 가지 프로젝트가 있습니다. Web ApplicationClass Library (Package) . 이 응용 프로그램의 ASP.Net 4.5 버전을 만들면 Entity Framework 6 엔터티를 클래스 라이브러리에 저장하므로 ASP.Net 5 버전에서이 작업을 수행하고 있습니다. 문제는 클래스 라이브러리에 EntityFramework.Commands 를 설치하면 오류가 발생합니다.

프로젝트 DBEntities에서 종속성 EntityFramework.Command 7.0.0-rc1-final은 프레임 워크를 지원하지 않습니다 .NetPlatform, Version = 5.4

이 질문에 대한 나의 이해는 dotnet5.4 가 EF7에 의해 지원 될 예정인 새로운 .Net 5입니다.

다음은 내 project.json 파일입니다.

{
  "version": "1.0.0-*",
  "description": "FFInfo.DAL Class Library",
  "authors": [ "Mathew" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.1-beta-23516",
                "System.Collections": "4.0.11-beta-23516",
                "System.Linq": "4.0.1-beta-23516",
                "System.Runtime": "4.0.21-beta-23516",
                "System.Threading": "4.0.11-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.Commands": "7.0.0-rc1-final",
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
    }
}

잘못된 패키지를 설치 했습니까? EF7이 너무 많이 변경되어 수업을 틀리게 만들었나요, 아니면 json 파일에 뭔가 빠졌습니까?

편집 : 새로운 project.json 파일 제안을 기반으로

{
  "version": "1.0.0-*",
  "description": "FFInfo.DAL Class Library",
  "authors": [ "Mathew" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",
    "frameworks": {
        "dotnet5.4": {
            "dependencies": {
                "Microsoft.CSharp": "4.0.1-beta-23516",
                "System.Collections": "4.0.11-beta-23516",
                "System.Linq": "4.0.1-beta-23516",
                "System.Runtime": "4.0.21-beta-23516",
                "System.Threading": "4.0.11-beta-23516"
            }
        }
    },
    "dependencies": {
        "EntityFramework.Commands": "7.0.0-rc1-final",
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"
    }
}

수락 된 답변

나는 당신의 문제의 이유가 순수한 기술적 특성을 가지고 있다고 생각합니다. 이 발표 는 dnx451을 net451로 바꾸고 dnxcore50을 dotnet5.4로 선언했지만 클래스 라이브러리 (예 : 다른 사람과 공유하기 위해 NuGet에 게시) 에만 이름 바꾸기를 사용하는 것이 좋습니다. 올바르게 이해하면 클래스 라이브러리를 사용하는 응용 프로그램 을 개발하므로 dnxcore50 대신 dotnet5.4dotnet5.4 합니다. 따라서 문자열 "dotnet5.4"의 이름을 "project.json "dnxcore50" in the file 문자열로 "dnxcore50" in the file 문제를 해결해야합니다 .

위의 권장 사항과는 별도로 EntityFramework.Command 7.0.0-rc1-final에 대한 오류가 발생한 이유 에 대한 내 이해를 추가하고 싶습니다.

필자는 프레임 워크의 이름을 바꾸는 것이 Microsoft를 계획하는 향후 변경 방향으로의 한 걸음임을 이해합니다. 다른면에서 프레임 워크의 모든 이름은 다른 이름으로 해석됩니다. https://www.nuget.org/packages/EntityFramework.Commands/7.0.0-rc1-final 페이지에 표시된 종속성에 대한 정보를 https : //www.nuget 의 해당 정보에서 비교하는 것이 좋습니다 . org / packages / EntityFramework.MicrosoftSqlServer / 7.0.0-rc1-final . EntityFramework.MicrosoftSqlServer ( dotnet5.4 사용상 아무런 문제가 없음)의 종속성은 그림과 비슷합니다.

여기에 이미지 설명을 입력하십시오.

나는 dotnet5.4 책임이있는 부분을 dotnet5.4 . 다른면에서 EntityFramework.Commands 의 종속성은 아래 그림과 같습니다.

여기에 이미지 설명을 입력하십시오.

새로운 이름 해당 없음 ".NETPlatform 5.4"섹션이없는 곳 dotnet5.4 .

EntityFramework.Commands project.json일부인 버그 라고 생각합니다. 명령 :

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}

나는 새로운 프레임 워크 이름 인 dotnet5.4 올바르게 지원하기 위해 라인에서 netcore50dotnet5.4 로 변경해야한다고 가정합니다. 하나는 "netcore50" 의 내용을 "netcore50" 의 복사본으로 dnxcore50 ( 참조) :

"netcore50": {
  "bin": {
    "assembly": "lib\\netcore50\\_._"
  }
}

아마도 하나의 이벤트가 위에서 언급 한 dll의 일부 버전 번호를 늘려야하지만 새로운 고정 버전이 게시 될 때까지는 "dotnet5.4" 에서 EntityFramework.Commands 를 사용할 수 없습니다.

업데이트 : EntityFramework 개발자 팀에 문제 를 제기 했습니다 . 나는 그것을 얻은 후에이 문제에 대한 마이크로 소프트의 답변을 포함시킬 것이다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.