무료 (오픈 소스) Entity Framework 도구를 개발 중입니다. ADO.NET 공급자는 근본적이지만 일부 상위 추상화도 사용합니다 (예 : ObjectContext , EntityConnection). 거의 모든 EF (EF4 = <)의 레거시 버전을 지원하고 싶습니다. EF5가 나올 때까지 .NET40만을 대상으로 개발할 수 있었기 때문에 매우 쉽습니다.레거시 지원이있는 Entity Framework 기반 도구의 다중 대상 개발
EF5는 새로운 기능 중 일부에서 .NET45 프레임 워크가 필요하기 때문에 작업을 더욱 복잡하게 만들었습니다. 반면 EF5는 .NET40도 지원합니다. 그 위에 EF는 이제 .NET 프레임 워크와 독립적으로 개발되었습니다.
현재로서는 .NET40과 .NET45를 모두 대상으로하는 것은 피할 수없는 일입니다. 그러나 현재 독립적으로 개발 된 EF를 준수 할 수있는 다중 타겟 환경을 설정하는 가장 좋은 방법은 무엇인지 모릅니다. 나는 또한이 문제에 대한 좋은 문서를 찾지 못했다.
여러 개의 솔루션 파일을 사용해야합니까? 여러 프로젝트 파일? 다중 솔루션 구성? EF의 모든 버전을 어떻게 든 참조 할 수 있습니까? 범용 빌드 스크립트를 만드시겠습니까? 그렇다면 어떻게? 다른 구성에 대해 단위 테스트를 실행하는 방법은 무엇입니까? 특정 구성에서 테스트가 실패 할 수 있음을 나타내는 방법은 무엇입니까? 변경된 네임 스페이스 (예 : ObjectContext)는 어떻게됩니까? 이 충돌을 해결하기 위해 #if 지시문을 사용해야합니까? 새 EF 릴리스에서 이전 버전과의 호환성을 손상시키는 기능을 구현해야하는 경우 어떻게해야합니까? 나는이 시점에서 정말로 불확실하다.
내 생각에 지금은 여러 빌드 구성을 사용해야합니다. 적절한 PropertyGroup 및 ItemGroup XML 자식 요소를 csproj 파일에 수동으로 편집/추가해야합니다. 이 방법으로 각 구성에 대해 참조 된 DLL의 대상 프레임 워크 나 힌트 경로를 변경할 수 있습니다. 더 좋은 제안이 있습니까? – tamasf