2016-07-01 2 views
20

.NET Core를 사용하여 응용 프로그램과 라이브러리를 천천히 마이그레이션하는 것이 좋습니다. 그러나 .NET 코어를 사용하도록 전체 코드 기반을 현실적으로 업그레이드 할 수는 없으며 프로덕션 환경에서 수많은 응용 프로그램을 테스트하고 배포하는 프로세스를 진행합니다. 나는 새로운 .NET 핵심 응용 프로그램을 만들 내 .NET 프레임 워크 프로젝트 중 하나를 참조하려고하면 예를 들어.NET 핵심 프로젝트에서 .NET Framework 프로젝트를 참조하려면 어떻게합니까?

, 내가 얻을 다음

다음 프로젝트

가 참조로 지원되지 않습니다 - Foobar.NetFramework에는 현재 프로젝트의 대상과 호환되지 않는 대상 프레임 워크가 있습니다. Foobar.NetCore.

Foobar.NetCore : .NETCoreApp, 버전 = V1.0

Foobar.NetFramework : .NETFramework, 버전 = V4.5

인가 그것을 가능한 새로운 .NET 핵심 응용 프로그램을 작성하고 내 기존 .NET Framework 라이브러리를 참조 하시겠습니까? 그렇다면, 그렇게하기위한 과정은 무엇입니까? Microsoft의 설명서를 읽고 GitHub에서 문제를 검색하는 데 몇 시간을 보냈지 만,이를 달성하는 방법이나 장기적인 비전이이 프로세스에 어떤 것인지 공식적으로 알 수는 없습니다.

+0

짧은 답변 : 당신이 할 수없는, 지금은. –

+0

이 질문은 당신에게 유용 할 수 있습니다 : http://stackoverflow.com/questions/39041097/how-do-i-add-the-npoi-library-to-a-net-core-1-0-project/39041098 # 39041098 – AperioOculus

답변

10

예, 현재 동일한 작업을 시도하고 있습니다. 트릭은 동일한 .NET 프레임 워크를 지원하는지 확인하는 것입니다. project.json 파일 안에 프레임 워크가 포함하려는 프로젝트의 프레임 워크와 일치하는지 확인하십시오. 예 :

"frameworks": { 
    "net46": { --This line here <<<< 
     "dependencies": { 
     "DomainModel": { 
      "target": "project" 
     }, 
     "Models": { 
      "target": "project" 
     } 
     } 
    } 
    }, 

FYI : .NET Core 또는 이전 프로젝트의 프레임 워크를 변경해야 할 수도 있습니다. 위와 같이 project.json 파일을 편집하면 .NET 코어를 변경할 수 있습니다. 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 열면 .NET 프로젝트에서도 마찬가지입니다. 프레임 워크 레벨을 변경하십시오.

두 프로젝트 프레임 워크가 일치하면 해당 프로젝트 프레임 워크를 포함 할 수있게됩니다. 행운을 빕니다!

+5

그리고, 이것이 혼란 스러울 수 있다고 생각하기 때문에 ASP.NET 코어를 .NET 코어로 실행하는 것과 달리 ASP.NET 코어를 전체 .NET Framework에서 실행합니다. .Net Framework와 .Net Core의 차이점은 중요합니다. 첫 번째 버전은 과거 ASP.NET에서 최신 ASP.NET을 실행하고 다른 버전은 크로스 플랫폼 인 더 작은 .Net 구성 요소에서 실행되기 때문입니다. –

+0

저는 여전히 project.json 스키마에 익숙하지 않으며 문서가 드물게 보입니다. "My.Test.Project"라는 프로젝트가 있다면 위의 예제를 통해 어떻게 추가 할 수 있습니까? –

+2

project.json 파일에 종속성을 추가하려고하면 다음과 같은 메시지가 나타납니다. 'MyTest.Project (> = 1.0.0)'을 '.NETFramework, Version = v4.6'으로 확인할 수 없습니다. 차이가 나는 프로젝트는 NuGet 패키지가 아닙니다. –

5

이전 질문이지만 .NetStandard 2.0 및 .netcore 2.0 및 vs2017.3의 출시로 게임이 변경되었습니다.

.NetCore 2.와 함께 .Net Framework (TFM)를 사용할 수 있지만 어떻게 사용할 수 있습니까?

1) vs2017.3에서는 .NetCore2 프로젝트에서 Full .Net Framework (모든 버전)를 직접 참조 할 수 있습니다.

2) .NetStandard2 클래스 라이브러리를 빌드하고 TFM을 참조 할 수 있습니다. 그런 다음 .NETCore2 프로젝트에서 .NetStandard2 라이브러리를 참조하십시오.

예를 들어 .NetStandard2에서 json.net net45를 참조하십시오. 폴더 찾아보기 및 버전 선택 net30 (netstandard1.3이 아님)

아래 이미지의 종속성을 참조하십시오. 노란색 경고가 표시되지 않습니다. 준비가되지 않은 nuget 라이브러리가 2 .Netstandard 포팅 할 경우에도

enter image description here

3), 당신은 라이브러리에 net461을 준수하는 모든 API를 사용할 수 있습니다.링크가있는 .NET 코어 2/표준 2.0 발표에 대한 인용

:

.NET 코어 2.0 자유롭게 버전까지 .NET 프레임 워크에 대한 내장 된 라이브러리를 참조 할 수 있습니다 4.6.1

.net core app target .net framework 4.5.2 on Linux

01 : 그들이

참조 .NET 코어에 사용할 수없는 API 방법을 사용하려고하면

그러나 일부 라이브러리는 런타임에 실패 할 수 있습니다 23,516,

라이브러리 또는 NuGet 패키지는 .NET 표준 /에서 사용할 수없는 기술을 사용할 경우에 따라서 만

.NET 코어

사용할 수 없습니다 타사 .NET 라이브러리 또는 NuGet 패키지를 사용할 필요. NET 코어를 사용하려면 .NET Framework를 사용해야합니다.

참조 : Choosing between .NET Core and .NET Framework for server apps

은 이제 비주얼 스튜디오 2017 15.3을 사용하여 .NET 표준 라이브러리에서 .NET 프레임 워크의 라이브러리를 참조 할 수 있습니다. 이 기능을 사용하면 시간이 지남에 따라 .NET Framework 코드를 .NET Standard 또는 .NET Core로 마이그레이션 할 수 있습니다 (바이너리로 시작한 다음 소스로 이동). 소스 코드가 더 이상 액세스 할 수 없거나 .NET Framework 라이브러리에서 손실되어 새로운 시나리오에서 여전히 사용할 수있는 경우 유용합니다.

참조 : Announcing .NET Core 2.0

관련 문제