2017-04-26 4 views
0

개발 팀은 많은 .net 프레임 워크 4.6 프로젝트 (VS 2015)를 보유하고 있습니다. 우리는 새로운 .net 핵심 프로젝트를 시작하여 결국 Linux에 배포하려고합니다.같은 팀의 .net 코어 및 .net 프레임 워크

VS 2017 및 .net core 2.0 미리보기를 설치했습니다.

하지만이 새로운 라이브러리 프로젝트에서 기존 라이브러리 프로젝트를 어떻게 재사용 할 수 있습니까?

우리는 연구하지만 명확하지 않습니다. - ".Net Framework 4.6"에서 ".NetStandard 1.x"로 기존 프로젝트의 대상을 변경해야합니다. (그리고 비 호환성 문제를 해결하십시오) - 아니면 우리는 그것들을 사용할 수 있습니까? (하지만 어떻게?)

감사

+1

내가 아는 한 .Net 데스크탑 라이브러리를 사용할 수는 없지만 .Net Core에 대해 다시 빌드해야하고 아마도 시간이 약간 소요될 수 있습니다. 1) 제한된 사용 가능한 기능으로 실행되도록 코드를 작성하십시오. 2) 코드를 테스트하여 원본 .Net에서와 똑같은 방식으로 작동하는지 확인합니다. 예를 들어, 다시 아는 한 LINQ는 Expression을 사용하고 .Net에서 IL로 컴파일되고 .Net Core에서는 해석됩니다. 때때로 눈에 띄는 차이가있을 수 있습니다. –

+0

@ Sergey.quixoticaxis.Ivanov : .NET Core는 식 트리를 인식하지 못합니다. .NET Core 2.0에서는 데스크톱 어셈블리도 사용할 수 있어야한다고 생각합니다. 이것이 바로 계획입니다. –

+0

@JonSkeet 현재 EFCore를 사용하는 UWP 소프트웨어를 개발 중입니다. LINQ가 구문 분석되고 있다는 진술은 EFCore github에있는 MS 직원 중 한 명에게서 나왔습니다. 어쩌면 이전 버전에서는 사실이었을 것입니다. 아마도 .Net Native에만 해당 될 수도 있고, 아마도 내가 잘못한 것일 수도 있습니다. 나는 확실하지 않다. 그 계획이 곧 현실화되기를 바랍니다. 서버 측을 Linux로 이전하는 것이 더 행복 할 것이지만, 첫 번째 시도는 너무 시간이 많이 걸리므로, 적어도 지금은이 아이디어를 멀리했습니다. –

답변

0

당신은 (당신이 리눅스를 실행하려는 경우 경우하지 않은) 당신의 새로운 프로젝트에 전체 프레임 워크를 대상으로하는 경우에만 기존 프로젝트를 참조/사용할 수 있습니다.

미리보기를 시작했다면 이전 프로젝트를 .NET 핵심 프로젝트로 변환하고 .NET Core 2.0 Preview 또는 NetStandard 2.0 Preview를 대상으로해야합니다. 애플리케이션 외부에서 이전 프로젝트를 참조/사용하지 않을 경우 NetStandard 2.0 Preview보다 더 많은 API를 제공 할 수 있으므로 .NET Core 2.0 Preview를 타겟팅하는 것이 좋습니다.

3

Microsoft는 이식 과정에 대한 공식 지침을 발행 : https://docs.microsoft.com/en-us/dotnet/articles/core/porting/

는 요약 : 의존성과

  1. 거래를 (을 마이그레이션하여), 재귀
  2. 이 프로젝트의 대상을. 응용 프로그램은 .NET 코어로 이동하고 라이브러리는 가능하면 .NET Standard로 이동합니다.
  3. 는 .NET Framework 및 .NET 코어 사이의 일을 공유 할
  4. 테스트 그래서

에게 당신의 포트를 확인하기 위해 몇 가지 유용한 도구를 사용하여 라이브러리는 가능한 한 많이 .NET 표준을 목표로한다. 그렇지 않으면 코드를 공유하고 여러 빌드를 수행해야합니다. 즉, 일단 .NET Framework를 대상으로하고 .NET Core를 다시 대상으로 빌드하십시오.