Vytváření nových projektů knihoven specifických pro platformu pro NuGet

Projekty multiplatformní knihovny, které cílí na konkrétní platformy, jako je iOS a Android, fungují nejlépe se sdílenými projekty.

NuGet může obsahovat kód specifický pro iOS i Android i kód .NET společný pro oba.

Vytvoří se více sestavení a zabuduje do jednoho balíčku NuGet. Standardy NuGet zajišťují přidání balíčku do všech podporovaných typů projektů, jako jsou projekty Xamarin.iOS a Android.

Postup vytvoření nuGetu pro více platforem

  1. Vyberte Soubor > nové řešení (nebo klikněte pravým tlačítkem na existující řešení a zvolte Přidat > nový projekt).

  2. V části Multiplatformní knihovna zvolte multiplatformní knihovnu:>

    Configure multi-platform library for a single code base

  3. Zadejte název a popis a zvolte Konkrétní platformu:

    Configure platform-specific library for iOS and Android

  4. Dokončete práci v průvodci. Do řešení se přidají následující projekty:

    • Android Project – Kód specifický pro Android lze volitelně přidat do tohoto projektu.
    • Projekt pro iOS – kód specifický pro iOS lze volitelně přidat do tohoto projektu.
    • Projekt NuGet – do tohoto projektu se nepřidá žádný kód. Odkazuje na ostatní projekty a obsahuje konfiguraci metadat pro výstup balíčku NuGet.
    • Sdílený projekt – Do tohoto projektu by se měl přidat společný kód, včetně kódu specifického pro platformu uvnitř #if direktiv kompilátoru.
  5. Klikněte pravým tlačítkem myši na projekt NuGet a zvolte Možnosti, otevřete část Metadata balíčku > NuGet a zadejte požadovaná metadata (a také všechna volitelná metadata):

    Enter required metadata

  6. Také v okně Možnosti projektu otevřete oddíl Referenční sestavení a zvolte profily PCL, které bude sdílená knihovna podporovat prostřednictvím "návnady a přepínače":

    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

    Poznámka:

    "Návnada a přepínač" znamená, že sestavení PCL budou obsahovat pouze rozhraní API vystavené knihovnou (nemůže obsahovat kód specifický pro platformu). Při přidání NuGet do projektu Xamarin se sdílené knihovny zkompilují proti pcL, ale sestavení specifická pro platformu obsahují kód, který skutečně používá projekt iOS nebo Android.

  7. Klikněte pravým tlačítkem na projekt a zvolte Vytvořit balíček NuGet (nebo sestavte nebo nasaďte řešení) a soubor balíčku NuGet .nupkg se uloží do složky /bin/ (v závislosti na konfiguraci).

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

Ověření výstupu

Balíčky NuGet jsou také soubory ZIP, takže je možné zkontrolovat interní strukturu vygenerovaného balíčku.

Tento snímek obrazovky ukazuje obsah nuGetu specifického pro platformu, který podporuje iOS a Android, a má vybraná dvě referenční sestavení:

Files contained in the NuGet package