prosource

Visual Studio 2015에서 공유 프로젝트와 클래스 라이브러리의 차이점은 무엇입니까?

probook 2023. 5. 13. 10:20
반응형

Visual Studio 2015에서 공유 프로젝트와 클래스 라이브러리의 차이점은 무엇입니까?

Visual Studio 2015의 새로운 기능을 보고 있는데 Shared Project가 많이 나왔는데 클래스 라이브러리나 포터블 클래스 라이브러리를 사용하는 것과 어떻게 다른지 이해할 수 없습니다.누가 설명해 줄 수 있나요?

편집: 공유 프로젝트는 Visual Studio 2015의 새로운 기능이며 휴대용 클래스 라이브러리와는 다릅니다.휴대용 클래스 라이브러리가 무엇인지 이해합니다.공유 프로젝트가 클래스 라이브러리와 어떻게 다른지 이해하려고 합니다.아래 링크를 참조하십시오.

http://www.c-sharpcorner.com/UploadFile/7ca517/shared-project-an-impressive-features-of-visual-studio-201/

공유 프로젝트와 클래스 라이브러리의 차이점은 후자가 컴파일되고 재사용 단위가 어셈블리라는 것입니다.

전자의 경우 재사용 단위가 소스 코드이며 공유 코드는 공유 프로젝트를 참조하는 각 어셈블리에 통합됩니다.

이 기능은 특정 플랫폼을 대상으로 하지만 공유해야 하는 코드가 있는 별도의 어셈블리를 만들 때 유용합니다.

참고 항목:

공유 프로젝트 참조는 솔루션 탐색기의 참조 노드 아래에 표시되지만 공유 프로젝트의 코드 및 자산은 기본 프로젝트에 연결된 파일인 것처럼 처리됩니다.


이전 버전의1 Visual Studio에서는 Add -> Existing Item을 사용하여 프로젝트 간에 소스 코드를 공유한 후 Link를 선택할 수 있습니다.하지만 이것은 좀 투박해서 각각의 개별 소스 파일을 개별적으로 선택해야 했습니다.여러 개의 상이한 플랫폼(iOS, Android 등)을 지원하는 움직임에 따라 Shared Project 개념을 추가하여 프로젝트 간에 소스를 쉽게 공유하기로 결정했습니다.


1 이 질문과 답변(지금까지)을 통해 공유 프로젝트가 Visual Studio 2015의 새로운 기능이었음을 알 수 있습니다.사실, 그들은 Visual Studio 2013 Update 2에서 데뷔했습니다.

는 이 블로그에서 더 많은 정보를 찾았습니다.

  • 클래스 라이브러리에서 코드가 컴파일되면 각 라이브러리에 대한 어셈블리(dll)가 생성됩니다.그러나 공유 프로젝트를 사용하면 헤더 정보가 포함되지 않으므로 공유 프로젝트 참조가 있으면 상위 응용 프로그램의 일부로 컴파일됩니다.별도의 dll이 생성되지 않습니다.
  • 클래스 라이브러리에서 공유 프로젝트가 C# 코드 파일, XAML 파일 또는 JavaScript 파일 등을 가질 수 있는 동안 C# 코드만 작성할 수 있습니다.

짧은 기간의 차이는

PCL은 에 대한 전체 액세스 권한을 갖지 않습니다.NET Framework는 공유 프로젝트와 동일합니다.

#ifdef for platform specific code - PCL에는 쓸 수 없습니다(PCL에서는 #ifdef 옵션을 사용할 없습니다. 왜냐하면 PCL은 별도로 자체 DLL로 컴파일되기 때문에 #ifdef가 평가될 때) 컴파일 시에는 어떤 플랫폼에 속할지 알 수 없기 때문입니다.). 반면에 공유 프로젝트에서는 쓸 수 있습니다.

플랫폼별 코드는 PCL의 Inversion Of Control을 사용하여 달성되는 반면, #ifdef 문을 사용하면 공유 프로젝트에서 동일한 것을 달성할 수 있습니다.

PCL과 Shared Project 간의 차이점을 보여주는 훌륭한 기사는 다음 링크에서 찾을 수 있습니다.

http://hotkrossbits.com/2015/05/03/xamarin-forms-pcl-vs-shared-project/

다른 사람들이 이미 쓴 것처럼, 간단히 말해서:

project 프로젝트
수준에서 합니다.


가능

여기에 나와 있는 답변에서 가장 누락된 것은 PCL에서 사용할 수 있는 기능이 줄어든 것에 대한 정보입니다. 예를 들어 파일 작업이 제한되어 있습니다(파일이 많이 부족했습니다).Xamarin 크로스 플랫폼 프로젝트의 IO 기능).

내용은
공유 프로젝트:
여러 , WinPhone으로 할 때 #사용할 수 .
프로젝트에 할 수 기능(컴파일이 필요하지만)을 하십시오.
합니다.
가 약간 더 큰 경우
2 그 의 Visual Studio 2013이 필요합니다.

pcl:
합니다.
Studio 업데이트2 이전 버전)와할 수 .
으로 적으로연에
중인 중 )

선택의 여지가 있다면 공유 프로젝트로 가는 것을 추천합니다. 공유 프로젝트는 일반적으로 더 유연하고 더 강력합니다.만약 당신이 당신의 요구사항을 미리 알고 있고 PCL이 그것들을 충족시킬 수 있다면, 당신도 그 길을 갈 수 있습니다.또한 PCL은 플랫폼별 코드를 작성할 수 없도록 하여 더 명확한 분리를 수행합니다(처음에 공유 어셈블리에 넣는 것이 좋지 않을 수 있음).

두 가지 모두 주요 초점은 여러 플랫폼을 대상으로 할 때이며, 그렇지 않으면 일반 라이브러리/dll 프로젝트만 사용할 것입니다.

클래스 라이브러리는 컴파일된 코드를 공유합니다.

공유 프로젝트가 공유 소스 코드입니다.

VS 2015에서 연속적으로.

공유 프로젝트를 사용하면 여러 프로젝트 유형에 걸쳐 코드, 자산 및 리소스를 공유할 수 있습니다.보다 구체적으로, 다음 프로젝트 유형은 공유 프로젝트를 참조하고 사용할 수 있습니다.

  • 콘솔, 윈도우즈 양식 및 윈도우즈 프레젠테이션 파운데이션.
  • Windows Store 8.1 앱 및 Windows Phone 8.1 앱.
  • Windows Phone 8.0/8.1 Silverlight 앱.
  • 휴대용 클래스 라이브러리입니다.

참고:- 공유 프로젝트와 PCL(Portable Class Library)은 모두 코드, XAML 리소스 및 자산을 공유할 수 있지만 다음과 같이 요약할 수 있는 몇 가지 차이점이 있습니다.

  • 공유 프로젝트는 재사용 가능한 어셈블리를 생성하지 않으므로 솔루션 내에서만 사용할 수 있습니다.
  • 공유 프로젝트는 코드가 실행 중인 플랫폼을 탐지하는 데 사용할 수 있는 WINDOWS_PHONE_APP 및 WINDOWS_APP와 같은 환경 변수를 지원하므로 플랫폼별 코드를 지원합니다.
  • 마지막으로, 공유 프로젝트는 타사 라이브러리에 종속될 수 없습니다.
  • 이에 비해 PCL은 재사용 가능한 .dll 라이브러리를 생성하고 타사 라이브러리에 종속될 수 있지만 플랫폼 환경 변수를 지원하지 않습니다.

언급URL : https://stackoverflow.com/questions/30634753/what-is-the-difference-between-a-shared-project-and-a-class-library-in-visual-st

반응형