Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
Selezionare File Nuova soluzione oppure fare clic con il pulsante destro del mouse su una soluzione esistente e scegliere Aggiungi > nuovo progetto>.
Scegliere Libreria multipiattaforma dalla sezione Libreria multipiattaforma>:
Immettere un nome e una descrizione e scegliere Specifica della piattaforma:
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
#ifdelle direttive del compilatore.
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):
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":

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.
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).

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:



