Ripristinare pacchetti NuGet con Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Con Il ripristino pacchetti NuGet è possibile installare tutte le dipendenze del progetto senza doverle archiviare nel controllo del codice sorgente. Ciò consente un ambiente di sviluppo più pulito e una dimensione del repository inferiore. È possibile ripristinare i pacchetti NuGet usando l'attività di ripristino NuGet, l'interfaccia della riga di comando di NuGet o l'interfaccia della riga di comando di .NET Core. Questo articolo illustra come ripristinare i pacchetti NuGet usando pipeline SIA classiche che YAML.

Prerequisiti

Ripristinare i pacchetti NuGet da un feed

  1. Passare alla definizione della pipeline classica e quindi selezionare Modifica.

  2. Selezionare questa opzione + per aggiungere una nuova attività. Cercare NuGet e quindi selezionare Aggiungi per aggiungere l'attività alla pipeline.

  3. Assegnare un nome all'attività e selezionare Ripristina dal comando.

  4. Selezionare Feed selezionata qui e selezionare il feed dal menu a discesa. Se si vuole usare il proprio file di configurazione, selezionare Feed nel file NuGet.config e immettere il percorso del file NuGet.config e la connessione al servizio se si vuole eseguire l'autenticazione con feed esterni all'organizzazione.

  5. Per includere pacchetti da NuGet.org, selezionare la casella di controllo Usa pacchetti da NuGet.org .

  6. Al termine, selezionare Salva e coda .

    Screenshot che mostra come configurare l'attività di ripristino NuGet.

Nota

Il ripristino nuGet classico usa l'attività di NuGetCommand@2 . Per impostazione predefinita, questa versione usa NuGet 4.1.0. Usare l'attività Programma di installazione dello strumento NuGet se si vuole usare una versione nuGet diversa.

Ripristinare i pacchetti NuGet in locale

Posizionare l'oggetto nuget.config nella stessa cartella .csproj del file o .sln. Il file di configurazione dovrebbe essere simile all'esempio seguente:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <!-- remove inherited connection strings -->
    <clear />
    <!-- add an Azure Artifacts feed -->
    <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/microsoftLearnModule/_packaging/FabrikamFiber/nuget/v3/index.json" />
    <!-- Get packages from NuGet.org -->
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

Per ripristinare i pacchetti NuGet, eseguire il comando seguente nella directory del progetto:

nuget.exe restore

Ripristinare i pacchetti NuGet da un feed in un'organizzazione diversa

Per ripristinare i pacchetti NuGet da un feed in un'altra organizzazione di Azure DevOps, è necessario usare un token di accesso personale per l'autenticazione.

Creare un token di accesso personale

  1. Passare all'organizzazione di Azure DevOps e quindi selezionare Impostazioni utente>Token di accesso personali.

    Screenshot che mostra come creare un token di accesso personale.

  2. Creare un token di accesso personale con ambito di creazione di pacchetti (lettura) e copiare il token di accesso personale negli Appunti.

    Screenshot che mostra come creare un token di accesso personale con autorizzazioni di lettura per la creazione di pacchetti.

Ripristino dei pacchetti NuGet

  1. Passare alla definizione della pipeline e selezionare l'attività di ripristino NuGet. Assicurarsi di usare la versione 2 dell'attività.

    Screenshot che mostra la versione dell'attività di ripristino NuGet.

  2. Selezionare Feed e autenticazione e quindi feed in NuGet.config.

  3. Selezionare il percorso del file NuGet.config .

  4. Selezionare Nuovo per aggiungere credenziali per i feed all'esterno di questa organizzazione/raccolta.

    Screenshot che mostra come configurare l'attività di ripristino NuGet.

  5. Selezionare External Azure DevOps Server e quindi immettere l'URL del feed (assicurarsi che corrisponda a ciò che si trova nel file NuGet.config), il nome della connessione al servizio e il token di accesso personale creato in precedenza. Al termine, seleziona Salva.

    Screenshot che mostra come aggiungere una nuova connessione al servizio.

  6. Al termine, selezionare Salva e coda .

Domande frequenti

D: La pipeline non riesce a ripristinare i pacchetti NuGet?

R: L'attività di ripristino NuGet può avere esito negativo per diversi motivi. Lo scenario più comune è quando si aggiunge un nuovo progetto che richiede un framework di destinazione non supportato dalla versione NuGet usata dalla pipeline. Questo errore non si verifica in genere nell'ambiente di sviluppo locale perché Visual Studio si occupa dell'aggiornamento della soluzione di conseguenza. Assicurarsi di aggiornare l'attività NuGet alla versione più recente.