2016-06-03 4 views
4

내 의문에 대한 답변을 찾을 수 없으므로 누군가가 명확히 설명 할 수 있습니다..net core classlibrary .net 프레임 워크 클래스 라이브러리

나는

  • 1 클래스 라이브러리 (.NET 프레임 워크)
  • 1 .NET의 핵심 라이브러리 더미 솔루션을 개발했지만 나는 위선적 인 말투, 그들이 어느 쪽을 참조하는 시도

호환되지 않는, 괜찮아. 이제

내 질문에

내가 함께 지금 4,5 애플 리케이션 MVC winforms-wpf-asp.net에 의해 사용되는 확장, 도우미 등이있는 유틸리티 클래스 라이브러리 (.NET 프레임 워크) ... 이 .net 코어의 이벤트는 .net 코어로 포팅하지 않으면이 라이브러리를 더 이상 사용할 수 없다는 것을 나에게 알립니다. 그런 다음 다른 응용 프로그램과 함께 사용할 수 없습니다.

올바른 접근 방법은 무엇입니까?

나는 분명한 것을 놓치고 있습니까?

+0

, 당신은 의미합니까 이전 닷넷 프레임 워크 또는 새 [닷넷 플랫폼 표준 (https://github.com/dotnet/corefx/blob/master /Documentation/architecture/net-platform-standard.md)? 닷넷 코어 라이브러리를 얼마나 정확하게 만들었습니까? – svick

+0

@svick yes는 "이전".net 프레임 워크입니다. aspnetcore rc2와 함께 제공되는 템플릿을 사용하여 .net 핵심 라이브러리 생성 – developer9969

답변

2

공유 코드를 즉, 어떤 코드를 복제 할 필요없이 다양한 플랫폼을 대상으로 클래스 라이브러리를 생성 할 수있는 기능을 제공하지만, 일부의 #if 필요할 수 있습니다 프로젝트는 핵심 프로젝트에서 참조 할 수 없기 때문에 공유 프로젝트를 사용하여 나에게 적합하지 않았습니다.

그러나 약간의 트릭을 사용하면 효과를 낼 수 있습니다.

날이 폴더/파일 구조로 설명하게하십시오 : 핵심 프로젝트, 일반 .NET 프로젝트 및 공유 프로젝트 :

[ProjectName] // Root of Core project 
    project.json 
    [ProjectName].xproj 

    Shared // Root of Shared project 
     [ProjectName].Shared.projitems 
     [ProjectName].Shared.shproj 
     // -- Source files here -- 

    Net // Root of .NET project 
     [ProjectName].csproj 
     Properties 
      AssemblyInfo.cs // For both Core and .NET project 
     // NO source files here 

그래서, 당신은 물론 3 개 프로젝트가 필요합니다.
공유 프로젝트에는 모든 원본 파일이 있습니다.
.NET 프로젝트는 공유 프로젝트를 참조하므로 해당 파일도 있습니다.
핵심 프로젝트에는 공유 프로젝트에있는 모든 파일이 있으므로 동일한 파일도 있습니다.

그게 전부입니다. 이제 .NET 및 Core 프로젝트에 대한 공통 소스 코드 파일을 가질 수 있습니다.

몇 가지 참고 사항 :

  • 이제까지 같은 폴더에 .shroj.csproj을 넣어하지 마십시오. 저에게는 VS (2015)에서 인텔리 센스가 완전히 꺼졌습니다. 이 정보는

  • 당신은 미세 조정 공통 코드
  • 또한 위의 폴더 구조와 .NET 프로젝트에서 NuGet 2를 사용할 수 있습니다에게로 #if -s를 사용할 수 있습니다 ... 나를 위해 많은 고통을 비용이 산정.
    • 주, 당신은 (NuGet 3) project.json가있는 같은 폴더에 (NuGet 2) packages.config를 넣어 줄 경우, 후자는 완전히 이전 버전을 덮어 쓸 것이다. 당신은 ".NET 표준"뭐라고