Compartir vía


Creación de nuevos proyectos de biblioteca específicos de la plataforma para NuGet

Los proyectos de biblioteca multiplataforma que tienen como destino plataformas específicas, como iOS y Android, funcionan mejor con proyectos compartidos.

NuGet puede contener código específico de iOS y Android, así como código .NET común a ambos.

Se crean varios ensamblados y se integran en un único paquete NuGet. Los estándares de NuGet garantizan que el paquete se pueda agregar a todos los tipos de proyecto admitidos, como proyectos de Xamarin.iOS y Android.

Pasos para crear una biblioteca multiplataforma NuGet

  1. Seleccione Archivo > Nueva solución (o haga clic con el botón derecho en una solución existente y elija Agregar > Nuevo proyecto).

  2. Elija Biblioteca multiplataforma en la sección Multiplataforma > Biblioteca:

    Configure multi-platform library for a single code base

  3. Escriba un nombre y una descripción y elija Específico de la plataforma:

    Configure platform-specific library for iOS and Android

  4. Finalice el asistente. Los proyectos siguientes se agregan a la solución:

    • Proyecto de Android: el código específico de Android se puede agregar opcionalmente a este proyecto.
    • Proyecto de iOS: el código específico de iOS se puede agregar opcionalmente a este proyecto.
    • Proyecto NuGet: no se agrega código a este proyecto. Hace referencia a los demás proyectos y contiene la configuración de metadatos para la salida del paquete NuGet.
    • Proyecto compartido: se debe agregar código común a este proyecto, incluido el código específico de la plataforma dentro de las directivas del compilador #if.
  5. Haga clic con el botón derecho en el proyecto NuGet y elija Opciones, abra la sección Paquete NuGet> Metadatos y escriba los metadatos necesarios (así como los metadatos opcionales):

    Enter required metadata

  6. También en la ventana Opciones del proyecto, abra la sección Ensamblados de referencia y elija qué perfiles PCL admitirá la biblioteca compartida mediante un señuelo:

    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

    Nota:

    "Señuelo" aquí significa que los ensamblados PCL solo contendrán la API expuesta por la biblioteca (no puede contener el código específico de la plataforma). Cuando se agrega NuGet a un proyecto de Xamarin, las bibliotecas compartidas se compilarán en la PCL, pero los ensamblados específicos de la plataforma contienen el código que realmente usa el proyecto de iOS o Android.

  7. Haga clic con el botón derecho en el proyecto y elija Crear paquete NuGet (o compile o implemente la solución) y el archivo de paquete NuGet .nupkg se guardará en la carpeta /bin/ (Depurar o Liberar, dependiendo de la configuración).

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

Comprobación de la salida

Los paquetes NuGet también son archivos ZIP, por lo que es posible inspeccionar la estructura interna del paquete generado.

En esta captura de pantalla se muestra el contenido de un paquete NuGet específico de la plataforma que admite iOS y Android y que tenía dos ensamblados de referencia seleccionados:

Files contained in the NuGet package