Delen via


NuGet-pakketten publiceren met Azure Pipelines (YAML/Klassiek)

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

Met Azure Pipelines kunnen ontwikkelaars pakketten publiceren naar Azure Artifacts-feeds binnen hun organisatie, feeds in andere organisaties en openbare registers zoals nuget.org. In dit artikel wordt uitgelegd hoe u NuGet-pakketten publiceert naar zowel interne als externe feeds met behulp van klassieke en YAML-pijplijnen.

Vereisten

Product Requirements
Azure DevOps - Een Azure DevOps-organisatie en een project.
- Een Azure Artifacts feed.
- Als u een zelf-hostende agent gebruikt, controleert u of de .NET Core SDK en NuGet zijn geïnstalleerd.
- Machtigingen:
    - Als u toegang wilt verlenen tot alle pijplijnen in het project, moet u lid zijn van de groep Projectbeheerders.
    - Als u serviceverbindingen wilt maken, moet u de Administrator-- of Creator- rol hebben voor serviceverbindingen.

Notitie

Als u Ubuntu 24.04 of hoger gebruikt, moet u de NuGetAuthenticate taak gebruiken met de .NET CLI in plaats van nuget.exe. Zie Ondersteuning voor nieuwere gehoste Ubuntu-installatiekopieën voor meer informatie.

NuGet-pakketten publiceren naar een feed in dezelfde organisatie

Als u nog geen feed hebt, kunt u een nieuwe maken, anders volgt u deze stappen om uw NuGet-pakket te publiceren naar een feed binnen dezelfde organisatie:

  1. Meld u aan bij uw Azure DevOps en navigeer vervolgens naar uw project.

  2. Selecteer Pijplijnen en selecteer vervolgens uw pijplijndefinitie.

  3. Selecteer Bewerken en voeg vervolgens het volgende codefragment toe aan uw YAML-pijplijn om uw pakket te verifiëren en te publiceren:

    steps:
    - task: NuGetToolInstaller@1                            # Minimum required NuGet version: 4.8.0.5385+.
      displayName: 'NuGet Tool Installer'
    
    - task: NuGetAuthenticate@1                            # Authenticate with Azure Artifacts and other NuGet registries.
      displayName: 'NuGet Authenticate'
    
    - script: |
          nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg
      displayName: Push
    
  1. Meld u aan bij uw Azure DevOps en navigeer vervolgens naar uw project.

  2. Selecteer Pijplijnen en selecteer vervolgens uw pijplijndefinitie.

  3. Selecteer Bewerken en voeg vervolgens het volgende codefragment toe aan uw YAML-pijplijn om uw pakket te verifiëren en te publiceren:

    steps:
    - task: NuGetToolInstaller@1                            # Minimum required NuGet version: 4.8.0.5385+.
      displayName: 'NuGet Tool Installer'
    
    - task: NuGetAuthenticate@1
      displayName: 'NuGet Authenticate'
    
    - script: |
          nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg
      displayName: Push
    

Notitie

Als u pakketten wilt publiceren naar een feed met behulp van Azure Pipelines, moet u ervoor zorgen dat zowel de buildservice voor projectverzamelingen als de buildservice-id's van uw project de rol FeedUitgever (Inzender) hebben toegewezen in de feedinstellingen. Zie Machtigingen beheren voor meer informatie.

NuGet-pakketten publiceren naar een feed in een andere organisatie

Als u uw NuGet-pakketten wilt publiceren naar een feed in een andere Azure DevOps-organisatie, moet u eerst een persoonlijk toegangstoken (PAT) maken in de doelorganisatie en vervolgens een serviceverbinding maken in de organisatie waarin uw pijplijn wordt uitgevoerd. Vervolgens kunt u de serviceverbinding in uw YAML- of klassieke pijplijn gebruiken om uw pakketten te verifiëren en te publiceren.

1. Een persoonlijk toegangstoken maken

  1. Meld u aan bij de Azure DevOps-organisatie die als host fungeert voor uw doelfeed.

  2. Navigeer naarGebruikersinstellingen>Persoonlijke toegangstokens.

  3. Selecteer Nieuw token, geef een beschrijvende naam op, en selecteer onder ScopesVerpakken>Lezen en Schrijven.

  4. Selecteer Maken wanneer u klaar bent en kopieer en sla uw PAT vervolgens op een veilige locatie op, omdat u deze nodig hebt om de serviceverbinding hierna in te stellen.

2. Een serviceverbinding maken

  1. Meld u aan bij de Azure DevOps-organisatie waar uw pijplijn wordt uitgevoerd en navigeer naar uw project.

  2. Navigeer naar uw Project settings>Service-verbindingen.

  3. Selecteer Nieuwe serviceverbinding, selecteer NuGet en selecteer vervolgens Volgende.

  4. Selecteer Externe Azure DevOps-server als verificatiemethode en voer vervolgens de URL van de doelfeed in. Plak het persoonlijke toegangstoken dat u eerder hebt gemaakt, geef een naam op voor uw serviceverbinding en schakel het selectievakje Toegang verlenen toe aan alle pijplijnen , indien van toepassing op uw scenario.

  5. Kies Opslaan wanneer u klaar bent.

    Een schermopname van het instellen van een NuGet-serviceverbinding voor verificatie met een externe feed in een andere organisatie.

3. Uw pakket publiceren

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Pijplijnen en selecteer vervolgens uw pijplijndefinitie.

  3. Selecteer Bewerken en voeg vervolgens het volgende codefragment toe aan uw YAML-pijplijn om uw pakket te verifiëren en te publiceren:

    - task: NuGetToolInstaller@1                                # Minimum required NuGet version: 4.8.0.5385+.
      displayName: 'NuGet Tool Installer'
    
    - task: NuGetAuthenticate@1
      inputs:
        nuGetServiceConnections: <SERVICE_CONNECTION_NAME>
    
    - script: |
          nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg
      displayName: Push       
    
  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Pijplijnen en selecteer vervolgens uw pijplijndefinitie.

  3. Selecteer Bewerken en voeg vervolgens het volgende fragment toe aan uw YAML-pijplijn.

    - task: NuGetToolInstaller@1                            # Minimum required NuGet version: 4.8.0.5385+.
      displayName: 'NuGet Tool Installer'
    
    - task: NuGetAuthenticate@1                            # Authenticate with Azure Artifacts and other NuGet registries.
      inputs:
        nuGetServiceConnections: <SERVICE_CONNECTION_NAME>        # Name of the service connection used to authenticate with feeds across organizations or public registries.
    
    - script: |
        nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg
      displayName: Push          
    

Een schermopname van het pakket dat is gepubliceerd naar een feed in een andere organisatie.