Pubblicare pacchetti NuGet dalla riga di comando (NuGet.exe)

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Questo articolo illustra come configurare il progetto e pubblicare i pacchetti NuGet usando l'interfaccia della riga di comando NuGet.

Prerequisiti

Prodotto Requisiti
Azure DevOps - Un'organizzazione di Azure DevOps.
- Un progetto Azure DevOps .
- Un feed di Azure Artifacts.
- Scaricare e installare nuget.exe versione 4.8.0.5385 o successiva. È consigliabile usare NuGet 5.5.x o versione successiva, che include importanti correzioni di bug per gli annullamenti e i timeout.

Configurare il provider di credenziali Azure Artifacts

Il provider di credenziali Azure Artifacts consente l'autenticazione sicura per i feed di Azure Artifacts. Per usarlo con nuget.exe, è prima necessario aggiungerlo al percorso di ricerca del plug-in di NuGet. Per informazioni dettagliate, vedere Installazione e individuazione dei plug-in. Dopo aver aggiunto il plug-in, seguire la procedura di installazione per il sistema operativo:

Usare uno dei metodi seguenti per installare il provider di credenziali Azure Artifacts:

Installazione manuale

  1. Scaricare la versione più recente Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Estrarre il file ZIP.

  3. Copiare la netfx cartella dall'archivio estratto in %UserProfile%/.nuget/plugins/. La netfx cartella è necessaria per la compatibilità nuget.exe.

Installare utilizzando lo script di supporto

In alternativa, è possibile usare lo script helper automatizzato per un'installazione semplificata. Assicurarsi di avere PowerShell 5.1 o versione successiva e quindi eseguire:

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"

Per altre informazioni, consulta il repository Azure Artifacts Credential Provider.

Collegarsi a un feed

  1. Accedere all'organizzazione di Azure DevOps e quindi passare al progetto.

  2. Seleziona Artifactse quindi seleziona il tuo feed dal menu a discesa.

  3. Selezionare Connetti al feede quindi selezionare NuGet.exe nel riquadro di navigazione a sinistra.

  4. Aggiungere un file nuget.config al progetto, nella stessa cartella del file .csproj o .sln. Incollare il frammento XML specificato nel tuo file. Il frammento di codice dovrebbe essere simile al seguente:

    • feed con ambito organizzativo:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • Feed per il progetto:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Accedere al server Azure DevOps e quindi passare al progetto.

  2. Selezionare Artifactse quindi selezionare il feed.

  3. Selezionare Connetti al feede quindi selezionare NuGet.exe nel riquadro di spostamento a sinistra.

  4. Seguire le istruzioni nella sezione di allestimento del progetto per connettersi al feed.

Pubblicare pacchetti in un feed nella stessa organizzazione

Nota

Per pubblicare pacchetti in un feed, è necessario essere un autore di feed (collaboratore) o superiore. Per altri dettagli, vedere Gestire le autorizzazioni .

Eseguire il comando seguente per pubblicare un pacchetto nel feed. Sostituire i segnaposto con i valori appropriati:

nuget push <PACKAGE_PATH> -src https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json -ApiKey <ANY_STRING>

esempio:

nuget push MyPackage.5.0.2.nupkg -src https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json -ApiKey AZ

Nota

Il api-key è obbligatorio, ma è possibile specificare qualsiasi stringa come valore durante la pubblicazione in un feed di Azure Artifacts.

Pubblicare pacchetti su un feed di un'altra organizzazione

Per pubblicare i pacchetti NuGet in un feed in un'organizzazione Azure DevOps diversa, è prima necessario creare un token di accesso personale nell'organizzazione di destinazione.

  1. Passare all'organizzazione che ospita il feed di destinazione e creare un personal access token (PAT) con Packaging>lettura e scrittura ambito.

  2. Eseguire il comando seguente per aggiungere l'origine del pacchetto al file nuget.config. Verrà aggiunto il tuo PAT al file di nuget.config. Conserva questo file in un luogo sicuro e assicurati di non inserirlo nel controllo del codice sorgente.

    nuget sources Add -Name <SOURCE_NAME> -Source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json -UserName <USER_NAME> -Password <PERSONAL_ACCESS_TOKEN> -config <PATH_TO_NUGET_CONFIG_FILE>
    
  3. Eseguire il comando seguente per pubblicare il pacchetto:

    nuget push <PACKAGE_PATH> -src <SOURCE_NAME> -ApiKey <ANY_STRING>
    

esempio:

nuget sources Add -Name "MySource" -Source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json -UserName MyUserName -Password YourPersonalAccessToken -config ./nuget.config
nuget push nupkgs/mypackage.1.1.8.nupkg -src MySource -ApiKey AZ

Nota

Se l'organizzazione usa un firewall o un server proxy, assicurarsi di consentire URL di dominio e indirizzi IP di Azure Artifacts.