Condividi tramite


Creazione di nuovi progetti di libreria specifici della piattaforma per NuGet

Progetti di libreria multipiattaforma destinati a piattaforme specifiche, ad esempio iOS e Android, funzionano meglio con progetti condivisi.

NuGet può contenere sia il codice specifico di iOS che Android, nonché il codice .NET comune a entrambi.

Vengono creati più assembly e incorporati in un singolo pacchetto NuGet. Gli standard NuGet assicurano che il pacchetto possa essere aggiunto a tutti i tipi di progetto supportati, ad esempio progetti Xamarin.iOS e Android.

Passaggi per creare un nuGet di libreria multipiattaforma

  1. Selezionare File Nuova soluzione oppure fare clic con il pulsante destro del mouse su una soluzione esistente e scegliere Aggiungi > nuovo progetto>.

  2. Scegliere Libreria multipiattaforma dalla sezione Libreria multipiattaforma>:

    Configure multi-platform library for a single code base

  3. Immettere un nome e una descrizione e scegliere Specifica della piattaforma:

    Configure platform-specific library for iOS and Android

  4. Completare la procedura guidata. Alla soluzione vengono aggiunti i progetti seguenti:

    • Progetto Android: il codice specifico di Android può essere aggiunto facoltativamente a questo progetto.
    • Progetto iOS: il codice specifico di iOS può essere aggiunto facoltativamente a questo progetto.
    • Progetto NuGet: nessun codice viene aggiunto a questo progetto. Fa riferimento agli altri progetti e contiene la configurazione dei metadati per l'output del pacchetto NuGet.
    • Progetto condiviso: il codice comune deve essere aggiunto a questo progetto, incluso il codice specifico della piattaforma all'interno #if delle direttive del compilatore.
  5. Fare clic con il pulsante destro del mouse sul progetto NuGet e scegliere Opzioni, quindi aprire la sezione Metadati pacchetto > NuGet e immettere i metadati necessari (nonché i metadati facoltativi):

    Enter required metadata

  6. Nella finestra Opzioni progetto aprire anche la sezione Assembly di riferimento e scegliere i profili PCL che la libreria condivisa supporterà tramite "bait and switch":

    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

    "Bait and switch" indica che gli assembly PCL conterranno solo l'API esposta dalla libreria (non può contenere il codice specifico della piattaforma). Quando NuGet viene aggiunto a un progetto Xamarin, le librerie condivise verranno compilate in base alla libreria di classi portabile, ma gli assembly specifici della piattaforma contengono il codice effettivamente usato dal progetto iOS o Android.

  7. Fare clic con il pulsante destro del mouse sul progetto e scegliere Crea pacchetto NuGet (oppure compilare o distribuire la soluzione) e il file del pacchetto NuGet con estensione nupkg verrà salvato nella cartella /bin/ (Debug o Versione, a seconda della configurazione).

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

Verifica dell'output

I pacchetti NuGet sono anche file ZIP, quindi è possibile esaminare la struttura interna del pacchetto generato.

Questo screenshot mostra il contenuto di un NuGet specifico della piattaforma che supporta iOS e Android e ha selezionato due assembly di riferimento:

Files contained in the NuGet package