Aracılığıyla paylaş


NuGet için Platforma Özgü Yeni Kitaplık Projeleri Oluşturma

iOS ve Android gibi belirli platformları hedefleyen çok platformlu Kitaplık projeleri, Paylaşılan Projeler ile en iyi şekilde çalışır.

NuGet hem iOS hem de Android'e özgü kodların yanı sıra her ikisi için de ortak olan .NET kodunu içerebilir.

Birden çok derleme oluşturulur ve tek bir NuGet paketinde yerleşik olarak bulunur. NuGet standartları, paketin Xamarin.iOS ve Android projeleri gibi desteklenen tüm proje türlerine eklenebilmesini sağlar.

Platformlar Arası Kitaplık NuGet Oluşturma Adımları

  1. Yeni Çözüm Dosyala'yı > seçin (veya mevcut bir çözüme sağ tıklayıp Yeni Proje Ekle'yi > seçin).

  2. Çok Platformlu Kitaplık bölümünden Çok Platformlu > Kitaplık'ı seçin:

    Configure multi-platform library for a single code base

  3. Ad ve Açıklama girin ve Platforma özgü'leri seçin:

    Configure platform-specific library for iOS and Android

  4. Sihirbazı tamamlayın. Çözüme aşağıdaki projeler eklenir:

    • Android Project – Android'e özgü kod isteğe bağlı olarak bu projeye eklenebilir.
    • iOS Projesi – iOS'a özgü kod isteğe bağlı olarak bu projeye eklenebilir.
    • NuGet Projesi – Bu projeye kod eklenmez. Diğer projelere başvurur ve NuGet paket çıkışı için meta veri yapılandırmasını içerir.
    • Paylaşılan Proje – Derleyici yönergeleri içindeki #if platforma özgü kod da dahil olmak üzere bu projeye ortak kod eklenmelidir.
  5. NuGet projesine sağ tıklayın ve Seçenekler'i seçin, ardından NuGet Paketi > Meta Verileri bölümünü açın ve gerekli meta verileri (isteğe bağlı meta verilerin yanı sıra) girin:

    Enter required metadata

  6. Ayrıca Proje Seçenekleri penceresinde Başvuru Derlemeleri bölümünü açın ve paylaşılan kitaplığın "bait and switch" aracılığıyla hangi PCL profillerini destekleyeceğini seçin:

    Also in the Project Options window, open the Reference Assemblies section and choose which PCL profiles the shared library will support via bait and switch

    Not

    "Yem ve anahtar", PCL derlemelerinin yalnızca kitaplık tarafından kullanıma sunulan API'yi içereceği anlamına gelir (platforma özgü kodu içeremez). NuGet bir Xamarin projesine eklendiğinde paylaşılan kitaplıklar PCL'ye karşı derlenir, ancak platforma özgü derlemeler iOS veya Android projesi tarafından gerçekten kullanılan kodu içerir.

  7. Projeye sağ tıklayın ve NuGet Paketi Oluştur'u seçin (veya çözümü derleyin veya dağıtın) ve .nupkg NuGet paket dosyası /bin/ klasörüne kaydedilir (yapılandırmaya bağlı olarak Hata Ayıkla veya Serbest Bırak).

    NuGet package file will be saved in the bin folder either Debug or Release, depending on configuration

Çıktıyı Doğrulama

NuGet paketleri de ZIP dosyalarıdır, bu nedenle oluşturulan paketin iç yapısını incelemek mümkündür.

Bu ekran görüntüsü, iOS ve Android'i destekleyen ve iki başvuru derlemesinin seçildiği platforma özgü NuGet'in içeriğini gösterir:

Files contained in the NuGet package