Creación de una nueva biblioteca multiplataforma para NuGet
Crear un proyecto de biblioteca multiplataforma que use PCL o .NET Standard significa que el NuGet resultante se puede agregar a cualquier proyecto de .NET que admita el perfil de destino, incluidos los proyectos de ASP.NET o las aplicaciones de escritorio mediante WinForms, WPF o UWP.
La biblioteca solo puede contener código compatible con el perfil de PCL o .NET Standard seleccionado, así como cualquier otro NuGet que se agregue. Esto es adecuado para la lógica de negocios y los algoritmos que se pueden expresar completamente en la biblioteca de clases base de .NET.
Se crea un único ensamblado y se integra en un paquete NuGet.
Si más adelante necesita funcionalidad específica de la plataforma, se pueden agregar proyectos específicos de la plataforma.
Pasos para crear una biblioteca multiplataforma NuGet
Seleccione Archivo > Nueva solución (o haga clic con el botón derecho en una solución existente y elija Agregar > Nuevo proyecto).
Elija Biblioteca multiplataforma en la sección Multiplataforma > Biblioteca:
Escriba un Nombre y Descripción y elija Único para todas las plataformas:
Finalice el asistente. Se crea un único proyecto de biblioteca en la solución.
Haga clic con el botón derecho en el nuevo proyecto de biblioteca y seleccione Opciones. La sección Compilación > General permite establecer el Marco de destino, elegir un perfil PCL portátil de .NET o una versión de .NET Standard:
También en la ventana Opciones del proyecto, abra la sección Paquete NuGet > Metadatos y escriba los metadatos necesarios (así como los metadatos opcionales):
Haga clic con el botón derecho en el proyecto de biblioteca 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):
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 NuGet basado en PCL: solo se incluye un único ensamblado PCL:
Adición de código específico de la plataforma
Los proyectos basados en PCL y los proyectos basados en .NET Standard no pueden contener referencias específicas de la plataforma (como la funcionalidad de iOS o Android).
Si es necesario expandir un proyecto PCL o un proyecto de .NET Standard existente para incluir código específico de la plataforma, puede hacer clic con el botón derecho en el proyecto y seleccionar Agregar > Agregar implementación de plataforma...:
Se pueden agregar uno o varios proyectos de plataforma a la solución y, opcionalmente, la biblioteca PCL o .NET Standard existente se puede convertir en un proyecto compartido:
Después de convertir en un proyecto compartido, visite la sección Opciones del proyecto > Paquete NuGet > Ensamblados de referencia y asegúrese de que se seleccionan los perfiles necesarios (de modo que NuGet siga siendo compatible con los proyectos en los que se usó anteriormente).