Publikování balíčků NuGet z příkazového řádku pomocí NuGet.exe

služby Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Tento článek vás provede tím, jak se připojit ke svému zdroji a publikovat balíčky pomocí dvou způsobů ověřování: Azure Artifacts Credential Provider pro zdroje ve vlastní organizaci a tokenu osobního přístupu (PAT) pro zdroje hostované v jiné organizaci.

Požadavky

  • Organizace Azure DevOps.
  • Projekt Azure DevOps.
  • Kanál feed služby Azure Artifacts.
  • nuget.exe verze 4.8.0.5385 nebo novější. Azure Artifacts doporučuje NuGet 5.5.x nebo novější pro zajištění nejlepší kompatibility a spolehlivosti.
  • Chcete-li publikovat balíčky, musíte být Vydavatel kanálu (Přispěvatel) nebo mít vyšší oprávnění.

Nastavení zprostředkovatele přihlašovacích údajů Azure Artifacts

Poskytovatel přihlašovacích údajů Azure Artifacts umožňuje zabezpečené ověřování pro přístup ke kanálům Azure Artifacts. Pokud ho chcete použít s nuget.exe, musíte ho nejdřív přidat do cesty hledání modulu plug-in NuGet. Podrobnosti najdete v tématu Instalace a zjišťování modulu plug-in. Po přidání modulu plug-in postupujte podle pokynů pro instalaci operačního systému:

Pomocí jedné z následujících metod nainstalujte Azure Artifacts zprostředkovatele přihlašovacích údajů:

Ruční instalace

  1. Stáhněte si nejnovější verzi Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Extrahujte soubor ZIP.

  3. Zkopírujte složku netfx z rozbaleného archivu do %UserProfile%/.nuget/plugins/. Složka netfx se vyžaduje pro kompatibilitu nuget.exe.

Instalace pomocí pomocného skriptu

Případně můžete použít automatizovaný pomocný skript pro zjednodušenou instalaci. Ujistěte se, že máte PowerShell 5.1 nebo novější, a pak spusťte:

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

Další informace najdete v repozitáři Azure Artifacts Credential Provider.

Připojení ke kanálu

Před publikováním balíčků nastavte projekt a připojte se k informačnímu kanálu následujícím způsobem:

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.

  2. Vyberte Artefaktya poté v rozevírací nabídce vyberte svůj kanál.

  3. Vyberte Připojit k informačnímu kanálua pak v levém navigačním podokně vyberte NuGet.exe.

  4. Přidejte do projektu soubor nuget.config do stejné složky jako soubor .csproj nebo soubor .sln. Vložte zadaný fragment kódu XML do souboru. Fragment kódu by měl vypadat takto:

    • Informační kanálv rámci organizace:

      <?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>
      
    • informačního kanálu v rozsahu projektu:

      <?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. Přihlaste se k serveru Azure DevOps a přejděte k projektu.

  2. Vyberte Artefaktya pak vyberte svůj informační kanál.

  3. Vyberte Připojit k informačnímu kanálua pak v levém navigačním podokně vyberte NuGet.exe.

  4. nuget.config Přidejte do projektu soubor ve stejné složce jako soubor .csproj a .sln vložte do souboru zadaný fragment KÓDU XML.

Publikovat do kanálu ve stejné organizaci

Po konfiguraci nuget.config a ověření pomocí zprostředkovatele přihlašovacích údajů Azure Artifacts spusťte následující příkaz a publikujte balíček do svého kanálu. Zástupné symboly nahraďte příslušnými hodnotami:

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

Příklad:

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

Poznámka

Zprostředkovatel přihlašovacích údajů Azure Artifacts zajišťuje vlastní ověřování při odesílání, ale NuGet stále vyžaduje hodnotu -ApiKey, aby příkaz přijal. Azure Artifacts hodnotu, kterou zadáte, ignoruje, takže všechny neprázdné řetězce fungují.

Publikování do informačního kanálu v jiné organizaci

Pokud je cílový kanál v jiné organizaci Azure DevOps, vytvořte v této organizaci PAT a přidejte kanál jako zdroj v souboru nuget.config.

  1. Vytvořte v cílové organizaci token osobního přístupu (PAT) s rozsahem Packaging>.

  2. Spuštěním následujícího příkazu přidejte informační kanál jako zdroj. Tento příkaz přidá váš PAT do nuget.config, proto jej bezpečně uložte a nezařazujte jej do správy verzí.

    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. Publikujte balíček pomocí názvu zdroje, který jste právě přidali.

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

Příklad:

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

Poznámka

Pokud vaše organizace používá bránu firewall nebo proxy server, povolte adresy URL domén a IP adresy pro Azure Artifacts.

Troubleshooting

Výzva k ověření se nezobrazuje

Ujistěte se, že máte nainstalovaný poskytovatel přihlašovacích údajů Azure Artifacts a že používáte NuGet verze 4.8.0.5385 nebo novější. Postup nastavení najdete v tématu Připojení k informačním kanálům Azure Artifacts pomocí NuGet.exe.

Publikování selže, protože verze již existuje.

Verze balíčků v Azure Artifacts jsou neměnné. Po publikování verze ji nemůžete přepsat ani znovu použít stejné číslo verze, i když balíček odstraníte. Aktualizujte verzi balíčku, znovu sestavte balíček a pak ho znovu publikujte.

Publikování se nezdaří při použití firewallu nebo proxy serveru

Povolte adresy URL a IP adresy domény Azure Artifacts a potom publikování zkuste znovu.

Publikování selže s chybou 403

Tato chyba obvykle znamená, že váš účet nemá oprávnění k publikování pro daný kanál. Abyste mohli nahrávat balíčky, potřebujete alespoň roli Publikující uživatel informačního kanálu (Přispěvatel). Požádejte vlastníka informačního kanálu, aby aktualizoval vaši roli, a zkuste to znovu.