NuGet-pakketten vanaf de opdrachtregel publiceren met behulp van NuGet.exe

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

In dit artikel wordt u begeleid bij het maken van verbinding met uw feed en het publiceren van pakketten met behulp van twee verificatiestromen: de Azure-artefacten referentieprovider voor feeds in uw eigen organisatie en een persoonlijk toegangstoken (PAT) voor feeds die in een andere organisatie worden gehost.

Voorwaarden

  • Een Azure DevOps organisatie.
  • Een Azure DevOps project.
  • Een Azure-artefacten feed.
  • nuget.exe versie 4.8.0.5385 of hoger. Azure-artefacten raadt NuGet 5.5.x of hoger aan voor de beste compatibiliteit en betrouwbaarheid.
  • Als u pakketten wilt publiceren, moet u een feed-Publisher (inzender) of hoger zijn.

De Azure-artefacten-aanmeldingsgegevensprovider instellen

De Azure-artefacten Referentieprovider maakt beveiligde verificatie mogelijk voor uw Azure-artefacten-feeds. Als u het wilt gebruiken met nuget.exe, moet u deze eerst toevoegen aan het zoekpad voor invoegtoepassingen van NuGet. Zie Installatie en detectie van invoegtoepassingen voor meer informatie. Zodra de invoegtoepassing is toegevoegd, volgt u de installatiestappen voor uw besturingssysteem:

Gebruik een van de volgende methoden om de Azure-artefacten Referentieprovider te installeren:

Handmatige installatie

  1. Download de nieuwste Microsoft.NetFx48.NuGet.CredentialProvider.zip release.

  2. Pak het zip-bestand uit.

  3. Kopieer de netfx map uit het uitgepakte archief naar %UserProfile%/.nuget/plugins/. De netfx map is vereist voor nuget.exe compatibiliteit.

Installeren met behulp van het helperscript

U kunt ook het geautomatiseerde helperscript gebruiken voor een gestroomlijnde installatie. Zorg ervoor dat u PowerShell 5.1 of hoger hebt en voer het volgende uit:

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

Zie de opslagplaats Azure-artefacten Credential Provider voor meer informatie.

Verbinding maken met een feed

Voordat u uw pakketten kunt publiceren, stelt u uw project in en maakt u als volgt verbinding met uw feed:

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

  2. Selecteer Artefactenen selecteer vervolgens uw feed in het dropdownmenu.

  3. Selecteer Verbinding maken met feeden selecteer vervolgens NuGet.exe in het linkernavigatiedeelvenster.

  4. Voeg een nuget.config bestand toe aan uw project, in dezelfde map als uw .csproj of .sln bestand. Plak het opgegeven XML-fragment in het bestand. Het codefragment moet er als volgt uitzien:

    • organisatiegerichte feed:

      <?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>
      
    • project-specifieke feed:

      <?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. Meld u aan bij uw Azure DevOps-server en navigeer vervolgens naar uw project.

  2. Selecteer Artefactenen selecteer daarna uw feed.

  3. Selecteer Verbinding maken met feeden selecteer vervolgens NuGet.exe in het linkernavigatiedeelvenster.

  4. Voeg een nuget.config-bestand toe aan uw project, in dezelfde map als uw .csproj- of .sln-bestand, en plak vervolgens het opgegeven XML-fragment in uw bestand.

Publiceren naar een feed in dezelfde organisatie

Nadat u nuget.config hebt geconfigureerd en u hebt geauthenticeerd met behulp van de Azure-artefacten-referentiegegevensprovider, voert u de volgende opdracht uit om een pakket naar uw feed te publiceren. Vervang de tijdelijke aanduidingen door de juiste waarden:

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

Voorbeeld:

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

Notitie

De Azure-artefacten Referentieprovider verwerkt de echte verificatie voor de push, maar NuGet vereist nog steeds een -ApiKey waarde om de opdracht te accepteren. Azure-artefacten negeert de waarde die u opgeeft, dus elke niet-lege tekenreeks volstaat.

Publiceren naar een feed in een andere organisatie

Als de doelfeed zich in een andere Azure DevOps organisatie bevindt, maakt u een PAT in die organisatie en voegt u de feed toe als bron in uw nuget.config bestand.

  1. Maak een persoonlijk toegangstoken (PAT) in de doelorganisatie met het bereik Pakketten>.

  2. Voer de volgende opdracht uit om de feed toe te voegen als bron. Met deze opdracht wordt uw PAT toegevoegd aan nuget.config, dus sla het bestand veilig op en controleer het niet in broncodebeheer.

    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. Publiceer het pakket met behulp van de bronnaam die u zojuist hebt toegevoegd.

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

Voorbeeld:

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 -Source MySource -ApiKey AZ

Notitie

Als uw organisatie een firewall of proxyserver gebruikt, staat u de Azure-artefacten domein-URL's en IP-adressen toe.

Troubleshooting

Verificatieprompt wordt niet weergegeven

Zorg ervoor dat de Azure-artefacten Referentieprovider is geïnstalleerd en u nuGet-versie 4.8.0.5385 of hoger gebruikt. Zie Verbinding maken met Azure-artefacten feeds met NuGet.exevoor installatiestappen.

Publiceren mislukt omdat de versie al bestaat

Pakketversies in Azure-artefacten zijn onveranderbaar. Nadat u een versie hebt gepubliceerd, kunt u deze niet overschrijven of hetzelfde versienummer opnieuw gebruiken, zelfs niet als u het pakket verwijdert. Werk de pakketversie bij, bouw het pakket opnieuw en publiceer het opnieuw.

Publiceren mislukt achter een firewall of proxy

Sta de Azure-artefacten domein-URL's en IP-adressen toe en voer de publicatiebewerking opnieuw uit.

Publiceren mislukt met een 403-fout

Deze fout betekent meestal dat uw account geen publicatiemachtigingen voor de feed heeft. U hebt ten minste de rol Feed Publisher (Inzender) nodig om pakketten te pushen. Vraag de eigenaar van een feed om uw rol bij te werken en probeer het opnieuw.