Diğerleri gibi daha önce yazmışlar gibi, kısaca:
kod (dosya) düzeyinde paylaşılan proje yeniden kullanımı, klasör yapısına ve kaynaklara da izin verir
montaj seviyesinde pcl yeniden kullanımı
Benim için burada cevaplarda çoğunlukla eksik olan şey, bir PCL'de mevcut işlevselliğin azaltılması hakkında bilgi: örnek olarak sınırlı dosya işlemleriniz var (Xamarin çapraz platform projesinde çok fazla File.IO işlevselliği yoktu).
Daha ayrıntılı olarak
paylaşılan proje :
+ Birden fazla platformu hedeflerken #if kullanabilir (örn. Xamarin iOS, Android, WinPhone)
+ Her hedef proje için mevcut olan tüm çerçeve işlevleri (şartlı olarak derlenmelidir)
o Derleme zamanında entegre olur
- Biraz daha büyük boyut derleme listesi
- Visual Studio 2013 Güncelleştirme 2 veya üstü gerekir
pcl :
+ paylaşılan bir derleme oluşturur
+ Visual Studio'nun eski sürümleriyle kullanılabilir (2013 Öncesi Güncelleme 2)
o dinamik olarak bağlı
- izin verilen işlevsellik (başvurduğu tüm projelerin alt kümesi)
Seçeneğiniz varsa, paylaşılan projeye gitmenizi tavsiye ederim, genellikle daha esnek ve daha güçlüdür. Gereksinimlerinizi önceden biliyorsanız ve bir PCL bunları karşılayabilirse, bu rotaya da gidebilirsiniz. PCL ayrıca platforma özgü kod yazmanıza izin vermeyerek daha net bir ayırma sağlar (bu, ilk etapta paylaşılan bir montaja koymak için iyi bir seçim olmayabilir).
Her ikisinin de ana odak noktası, birden çok platformu hedeflediğinizde, normalde sadece sıradan bir kütüphane / dll projesi kullanırsınız.