다른 사람들이 이미 쓴 것처럼 짧게 :
코드 (파일) 수준에서 공유 프로젝트 재사용으로 폴더 구조 및 리소스도 허용
어셈블리 레벨에서 pcl 재사용
여기에 대한 대답에서 주로 누락 된 것은 PCL에서 사용할 수있는 기능 축소에 대한 정보입니다. 예를 들어 파일 작업이 제한적입니다 (Xamarin 크로스 플랫폼 프로젝트에서 많은 File.IO 기능이 누락되었습니다).
자세한
공유 프로젝트 :
+ 여러 플랫폼을 대상으로 할 때 #if를 사용할 수 있음 (예 : Xamarin iOS, Android, WinPhone)
+ 각 대상 프로젝트에 사용 가능한 모든 프레임 워크 기능 (조건부 컴파일해야 함)
o 컴파일 타임에 통합
-약간 더 큰 크기 결과 어셈블리
-Visual Studio 2013 업데이트 2 이상 필요
pcl :
+ 공유 어셈블리 생성
+ 이전 버전의 Visual Studio (2013 년 이전 업데이트 2)에서 사용 가능
o 동적으로 링크 된
기능 (참조되는 모든 프로젝트의 하위 집합)
선택의 여지가 있다면 공유 프로젝트를 진행하는 것이 좋습니다. 일반적으로 더 유연하고 강력합니다. 사전에 요구 사항을 알고 PCL이 요구 사항을 충족시킬 수 있다면 해당 경로로 이동할 수도 있습니다. 또한 PCL은 플랫폼 별 코드를 작성할 수 없도록하여보다 명확한 분리를 시행합니다 (처음에는 공유 어셈블리에 배치하기에 적합하지 않을 수 있음).
두 플랫폼의 주요 초점은 여러 플랫폼을 대상으로 할 때입니다. 그렇지 않으면 일반적으로 일반 라이브러리 / dll 프로젝트 만 사용합니다.